【问题标题】:to trim page's whitespace using itextpdf [duplicate]使用 itextpdf 修剪页面的空白 [重复]
【发布时间】:2015-04-25 22:30:13
【问题描述】:

我准备了一个 pdf,其中包含一些数据,然后是一些空格。我不知道数据有多大,但我必须删除文档中的空格,请参阅以下代码 注意:文档只包含文本

Document document = new Document(PageSize.A4, 40, 72, getMargins(1),20); document.setMarginMirroringTopBottom(true); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(webapps/wordimages/dischhip86.pdf)); List list1 = dao.executeQuery("select wordole from ip.dischargetemplate where patid='"+patid+"'");

String html = ((Map)list1.get(0)).get("WORDOLE").toString(); InputStream _ishtml = new ByteArrayInputStream(html.getBytes());

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

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

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

【问题讨论】:

    标签: java pdf-generation itext itextpdf


    【解决方案1】:

    PDF 可以看作是纸质文档的表示,因此您不能只剪切空格。

    从物理世界的角度来看,您可以使用剪刀剪切纸质文档的空白区域,这在 PDF 中意味着更改/缩小目标页面格式。

    或者,您可以放大 PDF 内容以完全适合所需的页面格式宽度。

    您认为什么是可接受的解决方案?

    这两个选项都有缺点:第一个会导致输出具有非标准页面格式的 PDF。第二个导致内容比例(即字体大小)在文档之间发生变化。

    正如我在您的代码示例中看到的,您将 HTML 转换为 PDF。第三个选项是重新排列 HTML 文档布局以不留空格(即表示为两列内容)。

    如果您仍然可以接受前两个选项,您可以尝试 HTML-to-PDF 转换器PD4ML。它的 API 调用 pd4ml.adjustHtmlWidth() 实现了内容缩放逻辑(选项 #2)。

    还可以使用 PD4ML 测量 HTML 内容宽度并选择目标页面格式,与内容宽度最佳匹配(选项 #1)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-06
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 2018-08-26
      • 2017-03-16
      • 1970-01-01
      相关资源
      最近更新 更多