有可能吗?如果是,那么它可以怎么做。
按照iText示例ExtractImages的思路,您可以像下面这样提取代码:
PdfReader reader = new PdfReader(resourceStream);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
ImageRenderListener listener = new ImageRenderListener("testpdf");
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
parser.processContent(i, listener);
}
ImageRenderListener
的定义如下:
class ImageRenderListener implements RenderListener
{
final String name;
int counter = 100000;
public ImageRenderListener(String name)
{
this.name = name;
}
public void beginTextBlock() { }
public void renderText(TextRenderInfo renderInfo) { }
public void endTextBlock() { }
public void renderImage(ImageRenderInfo renderInfo)
{
try
{
PdfImageObject image = renderInfo.getImage();
if (image == null) return;
int number = renderInfo.getRef() != null ? renderInfo.getRef().getNumber() : counter++;
String filename = String.format("%s-%s.%s", name, number, image.getFileType());
FileOutputStream os = new FileOutputStream(filename);
os.write(image.getImageAsBytes());
os.flush();
os.close();
PdfDictionary imageDictionary = image.getDictionary();
PRStream maskStream = (PRStream) imageDictionary.getAsStream(PdfName.SMASK);
if (maskStream != null)
{
PdfImageObject maskImage = new PdfImageObject(maskStream);
filename = String.format("%s-%s-mask.%s", name, number, maskImage.getFileType());
os = new FileOutputStream(filename);
os.write(maskImage.getImageAsBytes());
os.flush();
os.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
如您所见,ImageRenderListener
方法RenderImage
检索参数ImageRenderInfo
。这个参数有方法
问题内容: 首先,我不是Java开发人员:(我只需要一个小程序,它将从现有pdf文件中按字段名称输出到我的字段坐标,当我从命令行调用类时输入该字段的坐标,就像这样: 我在服务器上使用itext。现在,我正在尝试运行简单的代码: 但是我有一个错误:“类型不匹配:无法从列表转换为float []”。当我更换 与 我得到了结果“ [com.itextpdf.text.pdf.AcroFields$Fie
我试图通过翻译在http://viralpatel.net/blogs/itext-tutorial-merge-split-pdf-files-using-itext-jar/找到的splitPDF方法,用clojure从pdf中提取单个页面 IOException流关闭java.io.FileOutputStream.WriteBytes(:-2) 这将阻止我在repl仍然打开时打开文档。一旦
我想从现有的pdf中获取图像字段,并用其他图像填充它,以使用java中的pdfbox库创建新的pdf文件
问题内容: 我需要使用iText从pdf文件中提取文本。 问题是:一些pdf文件包含2列,当我提取文本时,我得到一个文本文件,其中的列作为结果合并(即同一行中两列的文本) 这是代码: 你能帮我完成这个任务吗? 问题答案: 我是iText文本提取子系统的作者。您需要做的是开发自己的文本提取策略(如果您看一下如何实现的话,就会发现您可以提供可插拔的策略)。 您将如何确定列的开始和停止位置完全取决于您-
我试图计算一种有效的方法,将笛卡尔坐标系中的图像转换为极坐标表示。我知道ImToPolar等一些功能正在实现这一点,它工作得很好,但对于大图像来说需要相当长的时间,尤其是当它们需要来回处理时。 这是我的输入图像: 然后我使用以0为中心的笛卡尔网格和函数生成一个极网格。最后,我使用绘制我的图像。 这是我得到的: 这正是我需要的图像,它与ImToPolar相同,或者更好。 既然MATLAB知道如何计算
我的任务是从PDF中提取特定坐标的文本。 我使用Apache Pdfbox客户端进行数据提取。 为了从PDF中获取x、y、高度和宽度坐标,我使用PDF x更改工具,单位为毫米。当我在矩形中传递值时,值不是空值。 请建议我的方法是否正确...