Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在linux上裁剪pdf文件时,Courier粗体字体无法正确呈现

在linux上裁剪pdf文件时,Courier粗体字体无法正确呈现
EN

Stack Overflow用户
提问于 2021-06-16 12:52:06
回答 1查看 35关注 0票数 0

我使用pdfbox 2.0.21从pdf中提取页面作为图像,并将它们添加到word文档中。当我在windows环境中生成文件时,文档字体被正确地呈现,而当在测试环境(centos 7)上运行时,它们从下图中呈现出来。

我怀疑pddocument没有courier粗体,所以在渲染图像时默认设置为原生设置。我该如何解决这个问题呢?我没有看到任何强制或指定字体集的方法。提取图像的代码如下所示

代码语言:javascript
运行
AI代码解释
复制
        PDDocument document = null;
        try {   
            
            document = PDDocument.load(sourceOfImages);
            
            
            PDFRenderer pdfRenderer = new PDFRenderer(document);
            
            for (int page = 0; page < document.getNumberOfPages(); ++page)
            {
                logger.debug( " page  " + page + "of " + document.getNumberOfPages());
                
                ReportImage reportImage = new ReportImage();
                try (ByteArrayOutputStream pageImagesOutputStream = new ByteArrayOutputStream())
                {

                
                    
                    BufferedImage bim = pdfRenderer.renderImageWithDPI(page, DPI, ImageType.RGB);                   

                    logger.debug( " start clear metadata area ");
                    clearImageArea(bim,whiteAreaMetadataX,whiteAreaMetadataY,whiteAreaMetadataW,whiteAreaMetadataH);
                    logger.debug( " end clear metadata area ");

                    
                    logger.debug( " creating png ");
                    final int[] colourMap = {   0x00000000, 0xffffffff, 0xff000000, 0xff353535, 0xff888888, 0xff969696, 0xff237fe9, 0xffff0000 };
                    IndexColorModel colorModel = new IndexColorModel(8, colourMap.length, colourMap, 0, true, 0, DataBuffer.TYPE_BYTE );
                    
                    
                    BufferedImage image = new BufferedImage(ReportHelper.getA4W(DPI), ReportHelper.getA4H(DPI), BufferedImage.TYPE_3BYTE_BGR);
                    image.getGraphics().drawImage(bim, 0, 0, null);                 
                    ImageIO.write(image, "PNG", pageImagesOutputStream);
                    
                    double cmWidth = 21;
                    double cmHeight = 29.7;

                    pageImagesOutputStream.flush();
                    logger.debug( "end creating png ");
                    
                    reportImage.setImage(pageImagesOutputStream.toByteArray());
                    reportImage.setWidth(cmWidth);
                    reportImage.setHeight(cmHeight);
                    reportImage.getMetadata().getPDFInfoDTO().setFileName(fileName);
                    reportImage.getMetadata().setPageNumber(page);
                    
                    images.add(reportImage);
                }
                catch(Exception ex)
                {
                    logger.error("failed reading images at page" + page, ex);
                    throw new IOException(ex);
                }
                logger.debug( " end page " + page);
            }
            logger.debug( " end file elaboration " + fileName + " size " + images.size());
            return images;
        }
        catch(Exception ex)
        {
            logger.error("failed reading document", ex);
            throw new IOException(ex);
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-17 13:37:02

解决了在docker镜像上安装mscorefonts的问题

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

https://stackoverflow.com/questions/68003033

复制
相关文章
Word转PDF文档时,如何嵌入字体
在很多情况下,上传论文的Camera Ready版本时,要求提交PDF版本。下面的文章转自http://blog.csdn.net/chenyusiyuan/article/details/4078671。 今天投稿一个IEEE会议时遇到了一个不大不小的问题,在指定的论文提交网站进行格式检查(PDF Test)时,总是在字体嵌入那一项提示错误。开始一直不得其解,Arial、TimesNewRoman都是我们常用的电脑字体格式,怎么就不能通过检查呢?后来看官方常见问题解答后终于找到解决办法了。 我们使用的
ShiJiong
2018/01/10
3.4K0
Word转PDF文档时,如何嵌入字体
在 Linux 命令行上编辑 PDF
你收到的许多文件都是 PDF 格式的。有时这些 PDF 需要进行处理。例如,可能需要删除或添加页面,或者你可能需要签署或修改一个特定的页面。
用户1880875
2021/09/07
2.1K0
【SAS Says】基础篇:ODS的使用(上)
你不可能总是在SAS上查看结果,如果结果很多你要一一的讲结果复制到word中去,有ODS就好啦!它可以把SAS的结果直接输出到word、PDF等文件中。 5.1 ODC的概念 5.2 追踪选择过程的输出 5.3 从过程输出中创建SAS数据集 5.4 使用ODS语句创建HTML输出 5.5 使用ODS语句创建RTF输出 5.6 使用ODS语句创建printer输出 5.7 定制标题和注脚 ---- 5.1 ODC(Output Delivery System)的概念 过程步把数据发送给ODC,以决定输出的样式
数说君
2018/03/28
10.2K0
【SAS Says】基础篇:ODS的使用(上)
在centos上安装字体
在文件管理器中打开字体文件,可以看到右上方有install按钮,点击即可安装。 缺点是暂时没有找到删除的方法,也不知道安装到了哪个路径下。
羽翰尘
2019/11/20
2K0
全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩
嵌入式产品往往为了压缩成本而使用较小的flash存储器,因此可能需要对系统进行裁剪来减少对flash的占用。系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。
韦东山
2022/12/28
8.9K0
【SAS Says】基础篇:4. ODS的使用
你不可能总是在SAS上查看结果,如果结果很多你要一一的讲结果复制到word中去,有ODS就好啦!它可以把SAS的结果直接输出到word、PDF等文件中。 并且,你还要在这些文件中定制字体、背景、颜色... 4.1 ODC的概念 4.2 追踪选择过程的输出 4.3 从过程输出中创建SAS数据集 4.4 使用ODS语句创建HTML输出 4.5 使用ODS语句创建RTF输出 4.6 使用ODS语句创建printer输出 4.7 定制标题和注脚 4.8 用style=option定制proc print输出 4.
数说君
2018/04/08
4.7K0
【SAS Says】基础篇:4. ODS的使用
PDF字体简介
PDF中的文本可以是任何字体。所有的PDF查看器都必须支持5种字体(Times, Helvetica, Courier, Symbol and ZapfDingbats),这些字体可以在任何文档中直接使用。如果想使用其它字体,有如下三种方法:
跑马溜溜的球
2021/07/08
1.9K0
在Mac上安装consolas字体
Mac上一般不会预装consolas字体,但我习惯了,就是要用consolas字体。
JavaEdge
2021/02/23
2.3K0
Android 上显示 PDF 文件
最近在 手机上要显示 PDF 文件,在搜索引擎上找到了很多方案,大体上有以下几种:
佛系编码
2020/03/31
2.6K0
Android 上显示 PDF 文件
CSS魔法堂:再次认识font
一、前言                                 文字承载着站点内涵,而良好的字体、排版则为用户提供舒适的阅读体验。本文打算对字体稍微深入一下子网页字体的内容,若有纰漏请大家指正,谢谢!   目录一坨: 二, 字体分类 1. 衬线体(Serif) 2. 无衬线体/非衬线体(Sans-Serif) 3. 等宽体(Monospace) 4. 手写体/书法体(Calligraphy) 5. 符号体(Symbol) 三, 再识font-family 1. 认识font-fam
^_^肥仔John
2018/01/18
2.4K0
CSS魔法堂:再次认识font
导出pdf文件时加图片水印
前言:本文探讨的是利用pageEvent事件在生成PDF文件的过程中把图片水印加好,这样导出的是加好水印的pdf文件。
全栈程序员站长
2022/08/26
1.4K0
导出pdf文件时加图片水印
ubuntu7.10安装到3D开启
累了好几天,重装了十几遍终于把ubuntu7.10搞定到了我自认为完美的状态了。现在总结一下安装过程(按操作顺序记录): 1.在xp下不管用pqmajac还是其他硬盘分区工具分出10G的空余分区来(实验阶段10G尝试下),不知道是不是必须得把空余分区放到硬盘的最后,似乎用中间分区会出现安装错误。 2.开始安装,简单步骤省略...这里注意的是分区时,一个swap:2G,logical,结束。一个/,ext3,8G,开始。还有就是安装过程中保持网络通畅,因为过程中要下载语言包支持。 3.安装结束。 ----------- 为了避免在以后的配置过程中出现错误,这里推荐用clonezilla live(ghost 4 linux)做备份,clonezilla下载地址:[url]http://clonezilla.sourceforge.net/download/sourceforge/[/url] 下载*.iso刻张碟子出来,从碟子启动进入clonezilla live进行备份,使用还是相当简单的。 ----------- 4.用clonezilla live做一次备份,起名original 5.装好ubuntu7.10后,第一件事情就是安装源了: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup sudo gedit /etc/apt/sources.list 将内容全部替换成: deb [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy main restricted universe multiverse deb-src [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy main restricted universe multiverse deb [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-backports main restricted universe multiverse deb-src [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-backports main restricted universe multiverse deb [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-proposed main restricted universe multiverse deb-src [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-proposed main restricted universe multiverse deb [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-security main restricted universe multiverse deb-src [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-security main restricted universe multiverse deb [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-updates main restricted universe multiverse deb-src [url]http://ubuntu.cn99.com/ubuntu[/url] gutsy-updates main restricted universe multiverse ----更新软件包: sudo apt-get update sudo apt-get dist-upgrade --------------------------------这里更新软件包需要漫长的时间(取决于网速了) 可以在这个时候作一些比较简单的配置: ------------ 把桌面,把计算机、主文件夹、回收站放到桌面上,把挂载的卷去掉: gconf-editor 到/apps/nautilus/desktop/分支下,去掉volumes_visible前面的复选框,勾上trash_icon_visible,home_icon_visible,computer_icon_visible前面的复选框。 ------------ 调整上下任务栏里面的内容 ------------ 开通root登录: 1.修改root密码: sudo passwd root 2.系统->系统管理->登录窗口,在安全选项卡里“允许本地系统管理员登录”打勾 以后就可以通过切换用户从登录窗口用root权限登录
py3study
2020/01/10
1.8K0
使用python找到PDF文件的文本位置、字体大小、字体名称和字体颜色
看了https://cloud.tencent.com/developer/ask/sof/1162044,需要获得pdf文件的段落的字体大小。
用户6038411
2022/12/04
3.4K0
在 Python 中创建和修改 PDF 文件
了解如何在 Python 中创建和修改 PDF 文件非常有用。该PDF,或P ortable d ocument ˚F ORMAT,是最常见的格式在互联网上共享的文件之一。PDF可以在一个文件中包含文本、图像、表格、表单和富媒体。
玖柒的小窝
2021/12/14
13.3K0
linux xps文件,Master PDF:PDF和XPS文件编辑神器
假设您正在致力于Windows系统的替换,恰好又在为寻找一款可在优麒麟Ubuntu或其它Linux发行版具备PDF-XChange Viewer,Foxit Reader或Adobe Reader类似强大功能的PDF替代软件,那么本编很乐意向您推荐Master PDF编辑器,这是一款私有软件,其Linux版本可以作为个人工具免费使用,最新版本最低环境要求是Qt 5.4.1或以上版本。
全栈程序员站长
2022/08/19
3.3K0
linux xps文件,Master PDF:PDF和XPS文件编辑神器
在 Linux 上使用 gImageReader 从图像和 PDF 中提取文本
本上,OCR(光学字符识别)引擎可以让你从图片或文件(PDF)中扫描文本。默认情况下,它可以检测几种语言,还支持通过 Unicode 字符扫描。
用户8639654
2021/09/09
3.3K0
对比几家比较优质的PDF转Word SDK
Hello 大家好,我是Youna。我们打工人平时办公免不了要对一些文档格式行转换。我们将探讨几款主流的 PDF 转 Word SDK,分析它们在我们打工人的实际工作中所呈现的优势与劣势。
Youna
2023/08/21
8620
【说站】PDF文件如何裁剪页面大小,去掉多余的部分
先看图,上图是我们需要裁减的PDF页面,可以看到我们的有效部分只是左侧的文字部分,现在需要将文字有效部分裁减下来,去掉多余的空白部分。废话不多说,看操作。
很酷的站长
2022/11/24
2.6K0
【说站】PDF文件如何裁剪页面大小,去掉多余的部分
点击加载更多

相似问题

.rdlc和PDF -字体水平重叠/打印时无法正确呈现

19

佐治亚字体在Windows上无法正确呈现

21

TrueType字体无法从SSRS正确呈现为pdf

11

Typekit字体Raleway无法在Windows上正确呈现

13

R无法在PDF文件中呈现小字体

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档