怎样使生成的打印条码分辨率变低但不影响使用?

2020-07-06 08:23:53 +08:00
 a1609

系统要生成多个条码然后打印成 pdf, 现在 pdf 过大,导致下载和系统响应不过来。 求如何压缩图片质量或 pdf 质量? java 开发环境

3552 次点击
所在节点    Java
32 条回复
opengps
2020-07-06 08:31:15 +08:00
必须用 pdf 格式吗?这里即使换了其他格式,提升未必明显,毕竟内容摆在那里。
建议考虑另外 2 个问题:
1,动态生成一个 pdf 文件,本身就快不了多少。为了不卡住系统,起码得另起线程进程甚至另外用单独服务器处理生成过程。
2,对于动态生成 pdf 大文件,不适合实时下载。可以提供邮箱发送、轮训检查生成结果、稍后下载等方案免除实时要求
tankren
2020-07-06 08:56:34 +08:00
nicelabel 了解一下?
sleepm
2020-07-06 09:00:28 +08:00
调低分辨率参数
然后尝试扫码
只要条码能看清,然后拉够长和宽就行
分辨率过高,生成的时候 cpu 占用高,生成的文件也大,但是它的长宽就那么大。。。所以看你用的哪个库,能不能调分辨率参数
sivacohan
2020-07-06 09:02:54 +08:00
PDF417 ?
sleepm
2020-07-06 09:05:51 +08:00
不对啊,条码一般没有分辨率参数,二维码有
生成的条码是矢量的,然后调高度就行了
a1609
2020-07-06 09:41:32 +08:00
@sleepm 您说的这种是图片的调整。调整矢量的话,尺寸大小也会改变,我们是需要那种条码标签打印的,标签纸大小不变,条码尺寸不变。
a1609
2020-07-06 09:43:53 +08:00
@opengps 我们的友商 1500 个条码的 pdf 文件是 80kb,我们目前的是 8.7M,再大一点就卡死了
所以即时另起线程,下载等待时间也不一样
lovestudykid
2020-07-06 09:46:42 +08:00
pdf 本来就可以设 PPI 啊
a1609
2020-07-06 09:47:06 +08:00
@sivacohan 不是,是 Code128,商品的竖纹条码那样的的
lsylsy2
2020-07-06 09:54:00 +08:00
@a1609 确定是矢量吗?怎么听着像是“打印”的时候有转换
用 word 打开 pdf,看看里面是不是还是分开的条码,每张图片多大?
sivacohan
2020-07-06 10:54:50 +08:00
https://fonts.google.com/specimen/Libre+Barcode+128+Text#standard-styles
你看下这个,用字体来生成 bar code 。
jiejiss
2020-07-06 11:04:27 +08:00
a1609
2020-07-06 11:16:59 +08:00
@sivacohan 是的,我们现在已经能生成 code,并且多个 code 放在一起变为 pdf 文件进行打印,但是大小有点过大了,需要优化
a1609
2020-07-06 11:20:38 +08:00
@lsylsy2 用 word 打开感觉像是 pdf 转换成了 word 呀,目前效果是里面是整张图片
具体流程是系统将生成的条码按个数生成一个 pdf 文件,一页会有多个条码。
但是我们生成的 pdf 文件比友商的要大几十倍,导致下载和加载都比较慢
lsylsy2
2020-07-06 11:23:32 +08:00
@a1609 里面整张图片应该有问题,就是你的“打印成 pdf”这步有问题,把整个页面渲染成了一张图片,然后图片没压缩体积就大了
正确的应该是 word 打开虽然可能排版有问题,但条码图片还是一个一个分开的
lsylsy2
2020-07-06 11:24:20 +08:00
@a1609 本质就是别人的转换 pdf 相当于写一段文字保存一个 word 文件,而你是屏幕截图然后把截图贴进 word 保存
ryh
2020-07-06 11:30:08 +08:00
@a1609 #11 楼的意思是 pdf 里嵌入这个 38.0 KB 的字体, 然后生成的 barcode 全是文字 所以保存很多条码(实际上是文字) 也不会显著增加文件大小
vcijj
2020-07-06 11:32:00 +08:00
有没有办法以纯矢量的形式或者以字符的形式保存,以图片内容必然大呀
jfcai
2020-07-06 11:59:52 +08:00
@ryh 我也觉得嵌入字体是个好方法。
a1609
2020-07-06 13:08:29 +08:00
@lsylsy2 就是我们将条码生成了一张大的图片保存为 pdf,所以 pdf 比较大的意思吗?那先试试看,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/687428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX