Урезать пробел страницы, используя itextpdf

Я подготовил PDF-файл, содержащий некоторые данные, за которым следуют пробелы. Я не знаю, насколько велики данные, но мне нужно удалить пробелы в документе, см. Следующий код Примечание: документы содержат только текст

Документ документа = новый документ (PageSize.A4, 40, 72, getMargins (1), 20);document.setMarginMirroringTopBottom(true);PdfWriter writer = PdfWriter.getInstance (документ, новый FileOutputStream (webapps / wordimages / dischhip86.pdf)); List list1 = dao.executeQuery("select wordole from ip.dischargetemplate where patid='"+patid+"'");

String html = ((Карта)list1.get(0)). Get("WORDOLE"). ToString (); InputStream _ishtml = new ByteArrayInputStream(html.getBytes());

HeaderFooter event = new HeaderFooter (); writer.setPageEvent(event);

writer.setBoxSize ("art", new Rectangle (36, 54, 559, 788)); document.open();

Font font = FontFactory.getFont ("Times-Roman"); XMLWorkerHelper.getInstance().parseXHtml(writer, document, _ishtml);

1 ответ

PDF можно увидеть как представление бумажного документа, поэтому вы не можете просто вырезать пробелы.

С точки зрения физического мира вы можете вырезать пустое пространство бумажного документа с помощью ножниц, что в PDF означает изменение / уменьшение формата целевой страницы.

В качестве альтернативы вы можете масштабировать содержимое PDF, чтобы точно соответствовать желаемой ширине формата страницы.

Что вы видите в качестве приемлемого решения?

Оба варианта имеют недостатки: первый приводит к выводу PDF-файлов с нестандартными форматами страниц. Второй результат приводит к изменению масштаба содержимого (т.е. размера шрифта) от документа к документу.

Как я вижу в вашем примере кода, вы конвертируете HTML в PDF. Третий вариант - переупорядочить макет документа HTML, чтобы он не оставлял пробелов (т.е. представлял собой два столбца содержимого).

Если первые два варианта все еще приемлемы для вас, вы можете попробовать HTML-PDF-конвертер PD4ML. Его вызов API pd4ml.adjustHtmlWidth() реализует логику масштабирования содержимого (опция #2).

Также с помощью PD4ML можно измерить ширину содержимого HTML и выбрать формат целевой страницы, который наилучшим образом соответствует ширине содержимого (опция #1).

Другие вопросы по тегам