Урезать пробел страницы, используя 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).