首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java 利用 pdfbox 实现PDF转为图片

: * 1.如何解决 Linux 环境下乱码的问题:重写 UnixFontDirFinder 类,修改 Linux 环境下获取字体文件的路径,改为取项目里的字体文件(使用 pdfbox 转图片时的方法...; //利用PdfBox生成图像 PDDocument pdDocument = PDDocument.load(new File(pdfPath));...pdfbox) * @param pdDocument PDF对象 * @param page_end 要转换的页码,发票一般是一页,取第一页 * @return...*/ public static BufferedImage pdfToImage(PDDocument pdDocument,int page_end) { //保存每张图片的像素值...想想还是研究研究 pdfbox 的源码吧,分析后发现它是根据不同系统来读取字体的文件夹的,然后一个同事建议我重写读写 Linux 系统文件的类,指向我们项目的文件夹,然后在项目新建一个文件夹来存放需要的字体

3.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring Boot集成PDFBox实现电子签章

    概述随着无纸化办公的普及,电子文档的使用越来越广泛。电子签章作为一种有效的身份验证方式,在很多场景下替代了传统的纸质文件签名。...Apache PDFBox 是一个开源的Java库,可以用来渲染、生成、填写PDF文档等操作。本文将介绍如何使用Spring Boot框架结合PDFBox来实现电子签章功能。...Spring Boot项目创建:使用Spring Initializr创建一个新的Spring Boot项目。依赖添加:在pom.xml中添加PDFBox依赖。...import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPageContentStream;import...对于电子签章的有效性验证,可能还需要额外的数字证书支持。结语通过上述步骤,我们可以在Spring Boot项目中利用PDFBox实现基本的电子签章功能。

    22110

    PDF文档的自动化测试

    ,原有多产品线的合同/签章需要回归测试,验证与基线代码下的合同内容一致 2.2、设计思路: 场景一:最直接的方案是引入外部jar包,如PDFBox( https://pdfbox.apache.org/...PDFBox是Apache下的一个开源项目,我们可以通过 PDFBox读取、创建PDF文档,加密/解密PDF文档,从PDF和XFDF格式中导入或导出表单数据 等,实现代码如下: private static...= PDDocument.load(pdf)) { document.getClass(); if (!...; } return sb.toString(); } } return null;} 问题:经测试使用...,PDFBox提取出来的仅是文字流,而不是带有格式、顺序、标题的文档,经过PDFBox输出的字符串,我们仍需要全篇进行解析,处理并提取其中的关键字与填充信息,这样做很费劲而且不优雅。

    1.8K20

    java PDF 加密 分割 和 生成封面图操作

    由于``某些不可抗力原因,公司不允许使用itext系列的jar包,因此系统中使用的相关jar得替换成开源的。...经比较和尝试考虑使用org.apache.pdfbox来替换,同时修改系统中原有的方法,发现比itext系列稍显简洁一点,记录如下: 加密文件 /** * 加密文件测试 * @from...pdDocument = PDDocument.load(new File(pdfPath)); PDFRenderer renderer = new PDFRenderer(...,不需要自己去造轮子, step-1 去maven仓库检索同类型的包,比较一下热度和使用人数 step-2 下载对应包的source源代码,看一下框架整体结构,里面都有哪些package和类,不知道类是干什么的...,可以看一下类上面的注释,一般都是比较简单的英文 step-3 动手写单元测试进行验证。

    44830

    PDF加密、分割和生成封面图操作

    由于``某些不可抗力原因,公司不允许使用itext系列的jar包,因此系统中使用的相关jar得替换成开源的。...经比较和尝试考虑使用org.apache.pdfbox来替换,同时修改系统中原有的方法,发现比itext系列稍显简洁一点,记录如下: 加密文件 /** * 加密文件测试 * @date...pdDocument = PDDocument.load(new File(pdfPath)); PDFRenderer renderer = new PDFRenderer(...,不需要自己去造轮子, step-1 去maven仓库检索同类型的包,比较一下热度和使用人数 step-2 下载对应包的source源代码,看一下框架整体结构,里面都有哪些package和类,不知道类是干什么的...,可以看一下类上面的注释,一般都是比较简单的英文 step-3 动手写单元测试进行验证。

    50910

    java 往 pdf 插入数据 (pdfbox+poi)

    指定页码插入/替换 pdfbox好像没有专门提供这个方法,但是现有的方法多重组合起来也能实现这个功能, 需求:一个pdf文件A有10页,现在想在第6页插入一页新的pdf文件B,插入完成后整个pdf文件A...思路2(替换):   在插入的基础上,拆分的时候将pdf文件A里面的第6个页丢弃,使用新的页面来代替它命名6.pdf,然后合并就完事了。 1.pom pdfbox--> org.apache.pdfbox pdfbox-tools的第6页,然后(我这个整页都是图片)将内容修改后,合并进来发现尺码不对,是的,你没有听错就是尺码不对,当我修改后的pdf在放进来合并的时候,这一页它变小了~,原来是我在将图片另存为pdf,或者使用打印另存为...2、这个时候就用pdfbox的图片插入功能:将图片写入原来的6.pdf这一页里面来,你要问我为啥?因为原来的6.pdf尺码是对的,其中画图的时候开始位置x,y都从0开始。

    1K30

    【说站】java实现PDF加密、分割和生成封面图操作

    由于某些不可抗力原因,公司不允许使用itext系列的jar包,因此系统中使用的相关jar得替换成开源的。...经比较和尝试考虑使用org.apache.pdfbox来替换,同时修改系统中原有的方法,发现比itext系列稍显简洁一点,记录如下: 加密文件 /** * 加密文件测试 * @from fhadmin.cn... pdDocument = PDDocument.load(new File(pdfPath));PDFRenderer renderer = new PDFRenderer(pdDocument);/...,不需要自己去造轮子, step-1 去maven仓库检索同类型的包,比较一下热度和使用人数step-2 下载对应包的source源代码,看一下框架整体结构,里面都有哪些package和类,不知道类是干什么的...,可以看一下类上面的注释,一般都是比较简单的英文step-3 动手写单元测试进行验证。

    62110

    Java 解析pdf文档内容实战案例

    3.咱么既然要解析PDF文档内容,肯定是想把它解析成格式化数据(JSON)格式的,对吧,这样才能方便我们对数据的一个使用。 二、直接上代码 具体基本每一行,我都有详细的注释说明。...2.maven的pom文件引入依赖包如下: pdfbox start --> <!...java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.io.Writer; import org.apache.pdfbox.pdmodel.PDDocument...,并将解析内容输出到Txt文档中 * 正式使用时,无需将解析后的内容写入文件,测试时,写入文件是为了方便查看解析后的原始内容 * @param sourcePdfPath 要解析的pdf源文件...doc = PDDocument.load(file); //正式使用时,此处注释开始-------------- FileOutputStream fos = new FileOutputStream

    2.1K30

    PDF的Base64转换PngJpgBase64

    doc = PDDocument.load(pdf_bytes); int size = doc.getNumberOfPages(); /图像合并使用的参数/ //定义宽度 int width...imageResult = null; // 利用PdfBox生成图像 PDDocument pdDocument = doc; PDFRenderer renderer = new PDFRenderer...(pdDocument); /根据总页数, 按照50页生成一张长图片的逻辑, 进行拆分/ // 每50页转成1张图片 int pageLength = size; //有多少转多少 // 总计循环的次数...imageHeight = image.getHeight(); int imageWidth = image.getWidth(); if (i == 0) { //计算高度和偏移量 //使用第一张图片宽度...; width = imageWidth; // 保存每页图片的像素值 // 加个判断:如果m次循环后所剩的图片总数小于pageLength,则图片高度按剩余的张数绘制,否则会出现长图片下面全是黑色的情况

    83740
    领券