2015-06-04 2 views
3

Я хочу создать счет-фактуру PDF в моем приложении iOS (либо в Objective-C, либо в Swift).
Моя основная проблема заключается в том, что счет может иметь несколько страниц, что очень сложно реализовать с помощью существующих API от Apple (CoreGraphics, Quartz 2D и т. Д.).iOS создать PDF-счет

К настоящему моменту у меня уже есть едва рабочий раствор:

  1. я создал шаблон HTML, который является основной структурой для счета
  2. Шаблон заполнен данными с использованием GRMustache
  3. загружает сгенерированный HTML-файл в UIWebView и сохранить его в формате PDF (я использовал NDHTMLtoPDF, чтобы сделать это)

до сих пор, так хорошо.

Проблема с этим решением заключается в том, что разрывы страниц не работают должным образом. Есть несколько таблиц и изображений, и перерыв страницы часто вырезает столы или изображения.
Я пытался использовать свойство page-break-inside: avoid; CSS для изображений и таблиц, но UIWebView кажется, игнорировать их полностью ...

Мой вопрос:

  1. Вы знаете, как исправить проблема с разрывом страницы?
  2. Можете ли вы порекомендовать другое решение для создания PDF-файлов на iOS?
  3. Должен ли я составлять счет-фактуру в Раскадке и генерировать PDF-код от UIView? Как насчет разрыва страницы здесь?

Я предпочел бы иметь шаблон (например, HTML), заполнить его данными и сохранить его в формате PDF, а не делать все в коде.

+0

Есть причина, по которой вы хотите пройти через HTML?iOS позволяет использовать вызовы CG для создания PDF-файла с содержимым самостоятельно, что потенциально может быть больше работы, но вы бы получили полный контроль над тем, что вы создаете, где вы ломаете или не разбиваете страницы и т. д. –

+0

Причина, по которой я хотел использовать HTML, потому что я могу легко создать шаблон и заполнить его информацией. Кроме того, я мог бы повторно использовать шаблон в других (также не iOS) проектах. Кроме того, я думал, что сложнее вручную создать макет в CG (мне также придется заботиться о разрывах страниц и других вещей). Если нет другого решения, я думаю, что мне нужно использовать CG. – electronicMe

+1

, если вы хотите создать PDF-счет на iOS с помощью Objective C, проверьте это [учебник] (http://www.raywenderlich.com/6818/how-to-create-a-pdf-with-quartz-2d-in-ios -5-учебник-часть-2). – x4h1d

ответ

0

Я на самом деле написал PDF отчетов компоненту сам с предположительно аналогичными требованиями:

  • шаблонный делается с помощью HTML/CSS
  • Статический Header/Footer на каждой странице

Вы можете достичь этого с API UIPrintPageRenderer и UIViewPrintFormatter, с недостатком, вероятно, отклонения вашего приложения в обзоре магазина приложений, поскольку вы используете частные API Apple. Таким образом, такой подход может быть жизнеспособным только в академических условиях или при разработке собственных приложений.

Есть некоторые учебники о том, как это сделать, которые я не буду повторять, но для меня эти ресурсы были весьма полезны: