java pdfstamper_PdfStamper更改字体

本文探讨了在使用Java的PdfStamper工具更改PDF背景时,原始文本字体样式出现变化的问题。作者提供了一个控制台程序示例,该程序在PDF上设置特殊设计的字母作为背景,但发现在应用背景后,原始Calibri字体的样式受到影响。代码展示了如何使用PdfReader和PdfStamper进行操作,并请求社区帮助分析和解决这一字体显示不一致的疑虑。
摘要由CSDN通过智能技术生成

我将我的信件写在一个程序中并以PDF格式导出 . 我最近实现了一个小的控制台程序,它应该迭代每个页面并设置我的特殊设计字母(包含我的地址等)作为背景 .

问题是,我的信件是用Calibri写的 . 在使用pdf压模之前,原始PDF看起来很棒,在设置背景后,(未修改的文本)的样式看起来有点不同 .

在屏幕截图中看到我的意思 .

31550ecc-d562-4394-bbf5-737af7bcd02a.png

我无法向我解释,因此我认为这可能是一个错误 . 你有什么建议吗?

我的代码在这里 .

public static void main(String[] args) throws IOException, DocumentException {

PdfBackgroundSetter.setBackgroundToPdf(args[0], args[1], args[2]);

}

public static void setBackgroundToPdf(String inputContentPdfPath, String outputPdfPath, String inputBackgroundPdfPath) throws IOException, DocumentException {

PdfReader inputContentReader = new PdfReader(inputContentPdfPath);

PdfStamper outputStamper = new PdfStamper(inputContentReader, new FileOutputStream(outputPdfPath));

PdfReader inputBackgroundReader = new PdfReader(inputBackgroundPdfPath);

PdfImportedPage backgroundPage = outputStamper.getImportedPage(inputBackgroundReader, 1);

int numberOfPages = inputContentReader.getNumberOfPages();

for (int i = 1; i <= numberOfPages; i++) {

outputStamper.getUnderContent(i).addTemplate(backgroundPage, 0, 0);

}

outputStamper.close();

inputContentReader.close();

inputBackgroundReader.close();

}

可以在此处找到稍加修改(匿名)的PDF文件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值