Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PdfBox -更改pdf文件中的字体或fontName?

PdfBox -更改pdf文件中的字体或fontName?
EN

Stack Overflow用户
提问于 2021-03-25 10:32:50
回答 1查看 316关注 0票数 0

请告诉我。

我有一个pdf文件与字体HPDFAA+Arial-BoldMTBold。此字体名称不正确,它是一个子集...我改变字体的库Asponse.pdf.dll,https://docs.aspose.com/pdf/net/replace-text-in-pdf/,段落-替换字体在现有的PDF文件,但这个库试用版本。

我怎样才能用PDFBox做到这一点?我想在Arial-BoldMT上替换此字体或重命名字体名称。

更新:我的尝试导致nowhere...In PDFontDescriptor我可以重命名字体,但我如何申请PDFont?还是我走错路了?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        PDDocument pdfDocument = PDDocument.load(new File("Sample.pdf"));

        PDPageTree pages = pdfDocument.getDocumentCatalog().getPages();
        for (PDPage page : pages) {
            PDResources res = page.getResources();

            for (COSName fontName : res.getFontNames()) {
                PDFont font = res.getFont(fontName);
                PDFontDescriptor fontDescriptor = font.getFontDescriptor();
                System.out.println("fontDes: " + fontDescriptor.getFontName());
                String oldFontName = fontDescriptor.getFontName();
                String newFontName = oldFontName.replace("Arial-BoldMTBold", "Arial-BoldMT");
                fontDescriptor.setFontName(newFontName);

                System.out.println("font: " + font.getName());
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-25 16:00:53

下面是为您的文件量身定做的代码。只有当这是关于许多相似的文件时,它才能帮助你。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try (PDDocument doc = PDDocument.load(new File(XXX,"outerBox.pdf")))
{
    PDPage page = doc.getPage(0);
    for (COSName name : page.getResources().getFontNames())
    {
        PDFont font = page.getResources().getFont(name);
        String fontName = font.getName();
        if (font instanceof PDType0Font && fontName.endsWith("BoldMTBold"))
        {
            PDType0Font type0font = (PDType0Font) font;
            String newFontName = fontName.substring(0, fontName.length() - 4);
            type0font.getCOSObject().setString(COSName.BASE_FONT, newFontName);
            PDCIDFont descendantFont = type0font.getDescendantFont();
            descendantFont.getCOSObject().setString(COSName.BASE_FONT, newFontName);
            PDFontDescriptor fontDescriptor = descendantFont.getFontDescriptor();
            fontDescriptor.setFontName(newFontName);
        }
    }
    doc.save(new File(XXX,"outerBox-saved.pdf"));
}

PDF结构,在PDFDebugger中看到:

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

https://stackoverflow.com/questions/66797628

复制
相关文章
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个用于处理PDF文档的开源Java工具。该项目允许创建新的PDF文档,操作现有PDF文档,并从PDF文档中提取内容。Apache PDFBox还包括几个命令行实用程序。
万猫学社
2023/09/01
2.4K0
使用 Apache PDFBox 操作PDF文件
SpringBoot 下PDF生成使用填坑总结
解释: 1、Configuration cfg 使用了freemaker starter后,在项目启动时即会自动初始化 Configuration 对象到Spring容器中; 2、Template template = cfg.getTemplate("test.ftl","UTF-8"); 模板因cfg本身在Spring容器中,则在获取test.ftl模板是就会自动在resource/templates下寻找模板,默认:ftl 格式,可以修改 3、因为找了很多例子都是使用ITextRenderer 对象来渲染输出渲染的PDF,但ITextRenderer有一个问题是要解决中文不显示问题,必须把字体放在一个以 文件夹 路径访问的形式引入,SpringBoot打包后,经测试,无法获取打包后的FONT字体; 则,再另辟途径,又找到以Document方式,但document需要的是,没一个dom对象都必须一个个添加进去,网上很多都是new 专门的对象,比如:块 Paragraph 然后添加文字(数字)内容。 所以又搜索:是否可以往document插入html 最终找到:https://www.cnblogs.com/mvilplss/p/5646675.html
林淮川
2021/12/20
4.8K0
SpringBoot 下PDF生成使用填坑总结
PDFBox创建并打印PDF文件, 以及缩放问题的处理.
PDFBox带了一些很方便的API, 可以直接创建 读取 编辑 打印PDF文件. 创建PDF文件 1 public static byte[] createHelloPDF() { 2 ByteArrayOutputStream out = new ByteArrayOutputStream(); 3 try { 4 PDDocument doc = new PDDocument(); 5 PDPage pag
用户1216491
2018/01/24
3.6K0
字体更改
其中@font-face相当于创建一个字体族,然后下边body部分是在应用字体族,那个名字其实就是在前边创建的字体的名字。 通过在网络上的查找,我首先选择使用的是Robot字体,这个字体族写的英文字体相当漂亮:
爱编程的小明
2022/09/06
3.6K0
字体更改
java 利用 pdfbox 实现PDF转为图片
当时放到测试环境后一直显示乱码,看了下报错是说字体不存在。第一个想法是在主机上安装字体,但是又有问题了,生产不可能这样吧,运维也不同意啊。
Li_XiaoJin
2022/06/10
3.9K0
java 利用 pdfbox 实现PDF转为图片
java 往 pdf 插入数据 (pdfbox+poi)
pdfbox好像没有专门提供这个方法,但是现有的方法多重组合起来也能实现这个功能,
FHAdmin
2022/02/22
1.1K0
PDF字体简介
PDF中的文本可以是任何字体。所有的PDF查看器都必须支持5种字体(Times, Helvetica, Courier, Symbol and ZapfDingbats),这些字体可以在任何文档中直接使用。如果想使用其它字体,有如下三种方法:
跑马溜溜的球
2021/07/08
1.9K0
使用python找到PDF文件的文本位置、字体大小、字体名称和字体颜色
看了https://cloud.tencent.com/developer/ask/sof/1162044,需要获得pdf文件的段落的字体大小。
用户6038411
2022/12/04
3.3K0
Ubutu 更改 子文件或子目录的权限
Ubuntu中有两个修改命令可以用到,「change mode」&「change owner」
qubianzhong
2019/07/01
2.2K0
更改WordPress主题全局字体
加入以下自定义CSS即可 /* 您可以在此处加入您的CSS。 点击上方的帮助图标来了解更多。 */ /*字体设定*/ *:not([class*="icon"]):not(i) { font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif !important; } /*字体阴影*/ *{text-shadow: 0
回忆大大
2021/08/09
1.2K0
更改WordPress主题全局字体
Java调用PDFBox打印自定义纸张PDF
打印对象 一份设置为A3纸张, 页面边距为(10, 10, 10, 10)mm的PDF文件. PageFormat  默认PDFPrintable无法设置页面大小. 1 PDFPrin
用户1216491
2018/01/24
5.2K0
LIMS系统仪器数据采集-使用xpdf解析pdf内容
不同语言解析PDF内容都有各自的库,比如Java的pdfbox,.net的itextsharp。 c#解析PDF文本,关键代码可参考: http://www.cnblogs.com/mahongbiao/p/7652788.html 此外也可使用OCR,关键代码可参考: http://www.cnblogs.com/mahongbiao/p/3760867.html 这些类库解析PDF文本有一个弊端,就是可配置性不强,它们多数是用于PDF文件生成的,对于PDF文本内容的提取仅提供一两个函数供调用。 解析PD
用户1637609
2018/04/12
1.8K0
LIMS系统仪器数据采集-使用xpdf解析pdf内容
一款漂亮的不像实力派的pdf软件分享
pdf 是一种便携式文档格式,它是 Adobe 公司在 1992 年开发的一种文档格式,它诞生的目的就是为了实现一种可以独立于应用程序,软件,还有操作系统的文档,也就说这个文档可以在任何操作系统上展现,并且展示的效果是统一的。
程序那些事儿
2023/07/24
2760
一款漂亮的不像实力派的pdf软件分享
为Typecho站点更改好看的字体
今天有个访客在我博客里逛了好久,问我“你的站字体怎么这么好看啊?”“能不能教教我啊?”,好吧,那我就勉为其难出个教程吧!这篇文章适用于handsome主题,如果不是这个主题的,请移步百度搜索“网站更换字体代码”,最后替换一下链接即可!
小屁的博客
2022/05/13
1.3K0
为Typecho站点更改好看的字体
为Typecho站点更改好看的字体
今天有个访客在我博客里逛了好久,问我“你的站字体怎么这么好看啊?”“能不能教教我啊?”,好吧,那我就勉为其难出个教程吧!这篇文章适用于handsome主题,如果不是这个主题的,请移步百度搜索“网站更换字体代码”,最后替换一下链接即可!
小屁的博客
2022/08/30
1.2K0
为Typecho站点更改好看的字体
PDFBox 打印带背景的文件速度慢
打印慢的原因 java的RasterPrinterJob会执行很多次printPage方法 他应该是按块填充的, 如果页面元素非常复杂, 那么printPage方法可能会执行十几次. 而如果你用了如下代码中流式打印的方式, 每页pdf单独实现Printable接口, 重写print方法. 1 private static class FinePrintableDemo implements Printable { 2 3 public FinePrintableDemo(PD
用户1216491
2018/01/24
2.2K0
PDF字体乱码问题分析
最近身体有恙,于是就想起来整理下这几年体检的电子报告汇总看看。结果发现在善诊平台下载的体检报告在电脑上看直接乱码了。不过这种字符集的问题怎么能难得了本码农呢,所以就尝试起各种办法进行恢复,结果发现这果然是个深坑。。。
mythsman
2022/11/14
3.1K0
PDF字体乱码问题分析
点击加载更多

相似问题

使用PDFBox更改现有pdf文档的字体样式

110

Java apache pdfbox在Pdf文件中添加外部字体

10

如何更改现有PDFBox文档中的字体或编码

116

使用PDFBox检查pdf中的嵌入字体

26

保护PDFBox中的PDF文件和“PDFBox”

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文