各位程序员,您好!
我可以正确提取pdf文本坐标及其格式。但是我不能用图像做到这一点。
我可以得到适当的宽度和高度,但是它给了我错误的x和y。
我正在使用photoshop检查即时消息是否获取正确的x,y,width,height坐标,但只有宽度和高度正确
这是我的代码
@Override
public void processOperator(Operator operator, List<COSBase> arguments) throws IOException {
if ("cm".equals(operator.getName())) {
float width = ((COSNumber)arguments.get(0)).floatValue();
float height = ((COSNumber)arguments.get(3)).floatValue();
float x = ((COSNumber)arguments.get(4)).floatValue();
float y = ((COSNumber)arguments.get(5)).floatValue();
System.out.println("w: " + width + " h: " + height + " x: " + x + " y: " + y);
// process image coordinates
}
super.processOperator(operator, arguments);
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的示例pdf
http://persci.mit.edu/pub_pdfs/personal_photo_enhancement.pdf
和即时通讯使用第2页
这是程序的输出
w: 503.87997 h: 152.64 x: 71.5168 y: 561.056
Run Code Online (Sandbox Code Playgroud)
我使用Photoshop创建了一个矩形并覆盖了图像,但只有宽度和高度正确。
另一个问题
我用这个PDF
问题更新:如果我的问题不清楚,我很抱歉
这是我现在使用的代码
XDocument doc = XDocument.Parse(framedoc.ToString());
foreach (var node in doc.Descendants("document").ToList())
{
XNamespace ns = "xsi";
node.SetAttributeValue(ns + "schema", "");
node.Name = "alto";
}
Run Code Online (Sandbox Code Playgroud)
这是输出
<alto p1:schema="" xmlns:p1="xsi">
Run Code Online (Sandbox Code Playgroud)
我的目标是这样的
xsi:schemaLocation=""
Run Code Online (Sandbox Code Playgroud)
在什么地方p1
以及xmlns:p1="xsi"
来自?
程序员朋友们,美好的一天。我是java新手,我需要从pdf的特定部分创建图像。
目前,我正在使用 pdfbox。
这是我从 pdf 创建图像的代码(它正在工作,但它创建了整个 pdf 页面的图像):
PDDocument document = PDDocument.load(new File(PDFFILE));
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page)
{
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
ImageIOUtil.writeImage(bim, path + "-" + (page+1) + ".png", 300);
}
document.close();
Run Code Online (Sandbox Code Playgroud)
问题:
我需要根据 pdf 的特定位置(如矩形)创建图像。
有没有办法使用 pdfbox 来做到这一点,或者是否有另一个库可以做到这一点?我尝试搜索但找不到解决方案。
谢谢。