我正在使用 Python 和 reportlab 生成 PDF。我想从字体 CourierCondensed 切换到缩放 90% 的 Courier 字体。但是,我只想缩放字体宽度,同时保持字体高度相同。
这就是我的段落样式:
scale_factor = 1.0
my_style= ParagraphStyle(
name=font_name,
parent=my_parent,
fontName=font_name_string,
fontSize=font_size*scale_factor,
leading=font_size)
如果我使用 Courier 缩放 90%(即,如果scale_factor 设置为 0.9),这是输出:
人们可以注意到第二张图片显示的文本边距要小得多。因此,我想保持字体的初始高度,以避免边距发生很大的变化。
任何帮助或指示将不胜感激。
Courier 专为双矢量/光栅使用而设计,无需改变比率,在这里我们可以看到,当转换为屏幕像素时,它们在名义上的 12pt 下很清晰,但是 Courier New 和 Courier Condensed 的表现就不太好。如果您不成比例地缩放字体指标,您最多会得到糟糕的屏幕位置或模糊的字母。
最好看看正常的字体比例是否足够,而不是稍后添加潜在的失真。
如果您确实必须重新缩放,最好在整个文件上使用可编程方法来完成此操作(这应该按相同的比例缩放像素容器),因此最好的方法可能是让页面的正常宽度为 111.111%,然后运行,
cpdf -scale-page "0.9 1.0" in.pdf -o out90%wide.pdf