我已经用iText创建了一个文档,我想把这个文档(保存为PDF文件)转换成一个图像。为此,我使用PDFBox,它需要一个PDDocument作为输入。我使用以下代码:
@SuppressWarnings("unchecked")
public static Image convertPDFtoImage(String filename) {
Image convertedImage = null;
try {
File sourceFile = new File(filename);
if (sourceFile.exists()) {
PDDocument document = PDDocument.load(filename);
List<PDPage> list = document.getDocumentCatalog().getAllPages();
PDPage page = list.get(0);
BufferedImage image = page.convertToImage();
//Part where image gets scaled to a smaller one
int width = image.getWidth()*2/3;
int height = image.getHeight()*2/3;
BufferedImage scaledImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics2D = scaledImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, width, height, null);
graphics2D.dispose();
convertedImage = SwingFXUtils.toFXImage(scaledImage, null);
document.close();
} else {
System.err.println(sourceFile.getName() +" File not exists");
}
}
catch (Exception e) {
e.printStackTrace();
}
return convertedImage;
}
此时,我从已保存的文件中加载文档。但我希望在Java内部执行此操作。
所以我的问题是:如何将文档转换为PDDocument?
非常感谢任何帮助!
您可以做的是将itext文件保存到ByteArrayOutputStream中,将其转换为ByteArrayInputStream。
Document document = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
PDDocument document = PDDocument.load(bais);
当然文件不能太大,否则会有内存问题。
我有一堆XML文档(源),需要将它们转换为具有不同结构(目标)的POJO。我的第一个明显的想法是使用JAXB和XSLT的组合。然而,在一些问题上,我不确定这是否合适。 我无法访问源的XSD。 我不需要目标作为XML结构,而只需要作为POJOs。 然后我想创建一个映射表,比如。 然而,这将导致大量“映射”代码,特别是在涉及复杂数据类型的情况下。 你对我如何实施这一点有什么建议吗?
问题内容: 我以这种方式将猫鼬文档作为json返回: 但是,还返回了user . proto。没有它我怎么能回来?我尝试了这个但没有用: 问题答案: 您也可以尝试mongoosejs的lean():
问题内容: 将SQL数据库(例如1个表)转换为mongoDB文档的最佳方法是什么? 我想我可以使用C#驱动程序并实现一个循环,该循环选择表中的每一行并将其保存在Mongo中。但是,我正在寻找一种转换大量数据的更好方法。 问题答案: 司机的方式是FAR最直接的。导入/导出工具非常棒,但 前提 是您必须同时使用它们。如果您的表中包含日期,并且您尝试从数据库中导出并导入到mongo中,那么您将大吃一惊。
有人能给我举个例子,说明如何使用ApachePDFBox转换不同图像中的PDF文件(PDF的每一页对应一个图像)?
问题内容: 如何将Word文档转换为PDF,其中文档包含各种内容,例如表格。尝试使用iText时,原始文档看起来与转换后的PDF不同。有没有我可以使用的开源API /库,而不是调用可执行文件? 问题答案: 这是一项艰巨的任务,如果您想要完美的结果(如果不使用Word则不可能),则难度就更大了,因为仅使用纯Java即可为您完成所有操作且都是开源的API数量为零,我相信( 更新:我错了,请参见下文 )
目前我正在尝试将PDF转换为PDF/A。 然而,不知何故,我不知道我是否可以转换色彩空间,有没有办法这样做? 这是我的代码,然而: 色彩空间被添加但是在验证我得到: 对于每个页面/元素,它都经常出现。 我能做点什么来反对它吗?比如转换颜色空间?使用她的图书馆?