如何将Type 3 Font中编写的文本从一个pdf移动到另一个pdf?

时间:2014-04-24 06:17:34

标签: itext

我有一个pdf,其中包含用Type 3 Font编写的文本。

我想从中获取一些文字并将其写入完全相同形状的其他pdf中。

我正在使用itext。请给我一个提示。

编辑:我附上了我的代码。

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

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

1 个答案:

答案 0 :(得分: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

不幸的是,隐藏内容只是...... 隐藏 ......但它仍然存在。您可以使用隐藏文本标记线条并尝试复制并粘贴它们。

如果要完全删除隐藏文本(或仅通过复制所需文本开始),则必须检查导入页面的内容并对其进行过滤。我担心iText还没有明确支持类似的东西。它可以使用iText低级API完成,但这是一些工作。