当前位置: 首页 > 知识库问答 >
问题:

在itext中设置扫描文档上的文本

乐正意智
2023-03-14

我已经做了很多关于这个主题的研究,但我发现的一切都是每次“使用的函数getOverContent的压模”。我做了这个,但还是不行。

我做了一个程序,合并在一起的PDF的汇编,然后它分页这个新的文件(我希望你可以跟随我写的)。原始PDF是自制的(直接保存在PDF中)或不是(扫描)。这是最后几个有麻烦的地方。分页显示在第一个,但不是在秒(它可能存在,但它应该在图像后面)!

这里是分页的代码,有人知道我错在哪里吗?

PdfReader reader = new PdfReader(source);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(destination));
    for (int i = start + 1; i <= reader.getNumberOfPages(); i++) {
        Phrase noPage = new Phrase((i - start) + "", new Font(FontFamily.COURIER, 14));
        float x = reader.getPageSize(i).getRight(20);
        float y = reader.getPageSize(i).getTop(20);

        PdfContentByte content = stamper.getOverContent(i);
        content.beginText();
        ColumnText.showTextAligned(content,Element.ALIGN_CENTER, noPage, x, y, 0);
        content.endText();
    }
    stamper.close();
    reader.close();
for (int i = start + 1; i <= reader.getNumberOfPages(); i++) {
    Phrase noPage = new Phrase((i - start) + "", new Font(FontFamily.COURIER, 14));
    float x = reader.getCropBox(i).getRight(20);
        float y = reader.getCropBox(i).getTop(20);

        PdfContentByte content = stamper.getOverContent(i);
        ColumnText.showTextAligned(content,Element.ALIGN_CENTER, noPage, x, y, 0);
    }
    stamper.close();
    reader.close();

但还是不行

例如:https://www.transfernow.net/24axn1g4wq4l

共有1个答案

闻人和歌
2023-03-14

原始PDF是自制的(直接保存在PDF中)或不是(扫描)。这是最后几个有麻烦的地方。分页显示在第一个,但不是在秒(它可能存在,但它应该在图像后面)!

问题不是第二种PDF被扫描,而是它使用了页面旋转。

当一个页面旋转时,iText在内容不足和内容过多的开头插入一个坐标系旋转指令,以确保没有进一步转换而绘制的任何文本都直立地显示在旋转的页面上。

reader.getPageSize(i)
reader.getPageSizeWithRotation(i)
stamper.setRotateContents(false);
 类似资料:
  • 问题内容: 我正在尝试寻找一种方法来打破已自适应阈值的扫描文档中的文本行。现在,我将文档的像素值存储为0到255之间的无符号整数,并获取每行像素的平均值,然后根据像素值的平均值是否为0将行划分为多个范围大于250,然后将其取为各行范围的中值。但是,此方法有时会失败,因为图像上可能会出现黑色斑点。 有没有更好的抗噪方法来执行此任务? 编辑:这是一些代码。“扭曲”是原始图像的名称,“剪切”是我要分割图

  • 我正在尝试使用NodeJS v8在Firestore上创建一个引用文档。6.0。像这样 虽然ref是一个文档参考,但它会导致 错误:参数“data”不是有效文档。输入对象深度超过20层或包含一个循环。 有无论如何要做的NodeJS(管理)SDK? 此外,代码中使用的包是 和 输出 完整的错误消息是

  • 我有一个PDF文档,有一些填写字段(文本和复选框)。如何引用这些对象,以便我可以操作它的值,然后将更新的PDF推送到用户那里,他们可以将它保存到他们想要的位置。我没有找到关于如何做到这一点的任何好的文档。 现在我正在使用下面的代码,但是当我打开它时,我的PDF阅读器告诉我它已经损坏或损坏了。

  • 问题内容: 我正在用Java写一个简单的程序,它需要从文本文件中读取数据。但是,我在计算行数时遇到了麻烦。对于一个简单的Google搜索来说,这个问题似乎已经足够普遍了,但是我什至没有在搜索正确的东西。 我正在学习的教科书建议要计算文本文件中的行数,您应该执行以下操作: 在我看来,这是问题所在。我认为无限运行。我在代码中使用的数据文件肯定具有有限数量的数据行。 我该怎么办? 问题答案: 第一次调用

  • 我正在使用DynamoDB,并通过将JSON传递给它来存储文档,所有这些都在Java中使用DynamoDBMapper类。 将数据放入表中已经足够简单了。还可以查询表中是否有可用的Hash或Range值。 但是我想用JSON文档对一个值进行扫描(我猜是这样)。我一直在四处寻找例子,但我找不到任何例子,或者至少在使用DynamoDBMapper方法做事时找不到。 那么我认为这是可以做到的,对吗?如果

  • 问题内容: 我有一台服务器,该服务器的各个文件夹,子文件夹和子子文件夹中都有很多文件。 我正在尝试制作一个search.php页面,该页面将用于在整个服务器中搜索特定文件。如果找到文件,则返回位置路径以显示下载链接。 这是我到目前为止的内容: 如果文件位于我的域名的根目录下,则脚本可以正常工作…现在,我试图找到一种方法来使其也扫描子文件夹和子文件夹,但是我被卡在了这里。 问题答案: 有两种方法。