首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中使用pdfbox 2.0创建线性化(快速web视图) pdf?

如何在Java中使用pdfbox 2.0创建线性化(快速web视图) pdf?
EN

Stack Overflow用户
提问于 2016-09-30 13:27:17
回答 2查看 2.9K关注 0票数 3

我有一些.jpg文件,我正在使用它来创建一个pdf。我已经找了几个小时了,没有多少运气找到了如何线性化的pdf!我很难找到任何关于如何做的文档或指南,现在我希望能在这里得到一些帮助。我还查看了pdfbox2.0API文档,但没有发现任何有用的东西。我以前用过pdfbox,但主要是用来分割或合并pdf的。

代码语言:javascript
复制
private static void createPdf()
{
    PDDocument doc = new PDDocument();
    try
    {
        File images = new File("images/");
        for (File image : images.listFiles())
        {
            PDPage page = new PDPage();
            doc.addPage(page);
            BufferedImage awtImage = ImageIO.read(image);
            PDImageXObject pdImageXObject = LosslessFactory.createFromImage(doc, awtImage);
            PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.APPEND, true);
            contentStream.drawImage(pdImageXObject, 0, 0, (float) (awtImage.getWidth() / 5.4), (float) (awtImage.getHeight() / 5.9));
            contentStream.close();
        }
        doc.setVersion(1.6f);
        doc.save("pdf/images_v1.6.pdf");
    }
    catch (Exception io)
    {
        System.err.println(" -- fail --" + io);
    }
    finally
    {
        try
        {
            doc.close();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

任何建议都是非常感谢的!

编辑解决方案:我已经尝试了qpdf的建议,由,它解决了我的问题。下面是一个例子:

file 400dpi_90.pdf qpdf --show-linearization 400dpi_90.pdf qpdf --linearize --min-version=1.6 400dpi_90.pdf 400dpi_90-out.pdf file 400dpi_90-out.pdf qpdf --check-linearization 400dpi_90-out.pdf

上述结果如下:

400dpi_90.pdf: PDF document, version 1.4 400dpi_90.pdf is not linearized 400dpi_90-out.pdf: PDF document, version 1.6 400dpi_90-out.pdf: no linearization errors

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-30 17:31:40

很抱歉带来坏消息,但是它在PDFBox中是不可用的,也不会是,请参见讨论这里。我建议您使用qpdf对您的文件进行后处理。

票数 1
EN

Stack Overflow用户

发布于 2017-09-19 03:07:01

不幸的是,正如我所知,没有开源库支持生成线性化的PDF文件。

原因可能是:“支持线性化PDF将花费大量的工作,但它现在大部分时间都是无用的。”

我们知道,线性化PDF设计的时间(1996年)的网络速度非常低。因此,当在web上打开时,线性化PDF对于快速查看第一页和快速跳转到PDF的任意页面是必要的,尽管生成线性化PDF的实现非常复杂。但是现在的网络速度要快得多。大多数PDF文件的大小小于10 MB,下载一个PDF文件可能需要不到1秒。你看,现在一个PDF文件是否线性化并不重要。由于是否不需要线性化,而实现线性化PDF将需要大量的工作,因此没有开源库。

如果你必须做一个线性化的PDF,我认为你只能使用Acrobat来完成它。

PS:我正在为我工作超过2个月的公司开发线性PDF生成功能。因此,我可以说,没有开放源码开发人员会这样做,因为它是非常无聊和无用的大部分时间。我这么做的原因是:公司付给我薪水。π_π

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39792694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档