【问题标题】:Can you insert blank lines in an already transformed PDF?您可以在已转换的 PDF 中插入空行吗?
【发布时间】:2009-08-25 14:35:04
【问题描述】:

我有一种情况,我需要在已经从 XSL 模板转换的 PDF 上增加表格和标题之间的空间。 我需要在新创建的空间中插入一个地址。这部分很简单,我可以使用压模和新桌子来完成。

但是,我正在努力寻找将网格向下移动以腾出空间的解决方案。

基本上,我使用 FOP 从 XSL 模板创建 PDF,使用类似于以下的代码:

OutputStream out = new java.io.FileOutputStream(pdf);
Driver driver = new Driver();
driver.setRenderer(Driver.RENDER_PDF);
driver.setOutputStream(out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(xsl));
StringReader xmlStream = new StringReader(xmlData);
Source xmlSource = new StreamSource(xmlStream);
Result res = new SAXResult(driver.getContentHandler());
transformer.transform(xmlSource, res);

是否可以通过添加新空间的方式访问 PDF?如果是这样,我有什么选择?我应该提一下,当时我不知道我需要额外的空间。我只有在获得 PDF 的页数后才知道我需要它。

非常感谢任何帮助!

【问题讨论】:

    标签: pdf xslt transformation


    【解决方案1】:

    添加“新空间”本身是不可能的,但可以获取页面上对象的坐标,然后在其他地方重新绘制该对象。不幸的是,没有快速简便的解决方案,您将需要第三方 SDK 来执行此操作。

    PDF 不是文字处理器格式,因此无法像在 MS Word 中那样简单地添加几个回车符。

    试试iText,它是用 Java 编写的,并且有相当多的处理 PDF 的功能。

    【讨论】:

      【解决方案2】:

      一旦 PDF 已经生成,似乎不可能(至少从我尝试和阅读的所有内容来看)移动已转换的对象。

      因为我已经在使用 iText 和 PdfStamper 类,所以我能够插入一个新页面并插入一个包含当前地址信息的新表。我用以下代码做到了这一点:

      //add new page
      PdfStamper stamper = new PdfStamper(reader,new FileOutputStream(file);
      stamper.insertPage(pageNumber,reader.getPageSizeWithRotation(1));
      
      //add new table with data
      BaseFont base = BaseFont.createFont(BaseFont.HELVETICA,"",BaseFont.NOT_EMBEDDED);
      over.setFontAndSize(base,fontSize);
      PdfPTable table = new PdfPTable(1);
      table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
      table.addCell(data);
      table.setTotalWidth(150f);
      table.writeSelectedRows(0, -1, 73, 650, over);
      

      这不是我想通过一个可行的解决方案来回答我的问题,以防其他人被同一问题挂断。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-26
        • 2011-07-12
        • 1970-01-01
        • 2012-08-21
        • 2010-10-26
        • 2011-05-08
        相关资源
        最近更新 更多