2014-04-24 19 views
-1

我有一个pdf,其中包含用Type 3字体书写的文本。如何将使用Type 3字体编写的文本从一个pdf移动到其他pdf?

我想从中得到一些文本,并以完全相同的形式将其写入其他pdf。

我正在使用itext。请给我一个小费。

编辑:我附上我的代码。

DocumentFont f = renderInfo.getFont(); 
String str = renderInfo.getText(); 
x = renderInfo.getBaseline().getStartPoint().get(Vector.I1); 

在这段代码中,我想将str写入x值的位置。 在Type 3字体中,它有效吗?

+0

您是否希望文档A中的页面部分(其中包含类型3字体字形)原样复制到文档B,或者您希望某些内容重新流动吗? – mkl

+0

我想要以Type 3字体书写的内容重新流动。我尝试了RenderListener.renderText,但renderInfo.getFont(),getBaseline()得到了奇怪的值。我不知道下一步。 – marcus

+0

@mkl我更新了问题,你能指导我吗? – marcus

回答

0

可以使用这样的代码在一个页面的部分复制到一个新的:

InputStream resourceStream = getClass().getResourceAsStream("from.pdf"); 
    PdfReader reader = new PdfReader(new FileOutputStream("from.pdf")); 
    Rectangle pagesize = reader.getPageSizeWithRotation(1); 
    Document document = new Document(pagesize); 
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("areaOfFrom.pdf")); 
    document.open(); 

    PdfContentByte content = writer.getDirectContent(); 
    PdfImportedPage page = writer.getImportedPage(reader, 1); 

    content.saveState(); 
    content.rectangle(0, 350, 360, 475); 
    content.clip(); 
    content.newPath(); 
    content.addTemplate(page, 0, 0); 
    content.restoreState(); 

    document.close(); 
    reader.close(); 

这就使你的

from.pdf

AreaOfFrom.pdf

不幸,但是,那隐藏en内容仅仅是... 隐藏 ...但它仍然存在。您可以特别用该隐藏文本标记行,并尝试复制&粘贴它们。

如果您想要完全删除该隐藏文本(或者仅通过复制所需的文本开始),则必须检查导入页面的内容并对其进行过滤。恐怕iText尚未明确支持这样的事情。它可以使用iText低级API来完成,但这是相当的工作。

相关问题