因为有好几种方法,但大都有问题,试用pdfbox转换的时候PDF竖线都很粗
因不知什么原因导致,试用了第二种方法icepdf转换,但都是根据网上的代码转换的,PDF只有框架,没有文字
pdf-renderer也试了,但因问题是需要合作商修改代码所以没有使用
pdfbox的代码片段:
File file = new File(pdfPath);
try {
PDDocument doc = PDDocument.load(file);
org.apache.pdfbox.rendering.PDFRenderer renderer = new org.apache.pdfbox.rendering.PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
BufferedImage image = renderer.renderImageWithDPI(i, 300); // Windows native DPI
File file1 = new File(path);
ImageIO.write(image, "JPG", file1);
}
} catch (IOException e) {
e.printStackTrace();
}
icepdf的代码片段:
Document document = new Document();
document.setFile(pdfPath);
float scale = 2.5f;//缩放比例
float rotation = 0f;//旋转角度
for (int i = 0; i < document.getNumberOfPages(); i++) {
BufferedImage image = (BufferedImage)
document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);
PageText text = document.getPageText(0);
System.out.println("pagetext"+text);
RenderedImage rendImage = image;
try {
String imgName = i + ".png";
System.out.println(imgName);
File file = new File(path + imgName);
ImageIO.write(rendImage, "png", file);
} catch (IOException e) {
e.printStackTrace();
}
image.flush();
}
document.dispose();
目前是偏向于PDFbox来进行转换的,但希望竖线粗的问题能解决一下
有没有大佬能帮忙解决一下,万分感谢!
收索位置一定要对,会出现映射后的字体,依然找不到问题
是要显示在页面上吗?pdf也可以在页面上显示的
直接用fineprint可以把pdf保存为图片。。有图片就可以用图片转换格式,转成任何你需要的图片格式了。
pdf阅读器打开,把图片保存出来即可,想改什么格式就改什么格式
https://blog.csdn.net/shi0090/article/details/7262199/
https://blog.csdn.net/u010452891/article/details/42077783
https://www.cnblogs.com/pcheng/p/5704470.html
看到一个类似的问题,楼主可以看看https://blog.csdn.net/catoop/article/details/42677021
pdf生成的问题,已解决
https://blog.csdn.net/Eiceblue/article/details/82151396在Java应用程序中将PDF转换为图片和将图片转换为PDF