繁体   English   中英

为什么 [tag:weasyprint] xhtml-to-pdf 不适合 A4 页面?

Why [tag:weasyprint] xhtml-to-pdf does not fit A4 page?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我尝试使用 weasyprint Python 3 API 将“xhtml web 页面”转换为“A4 肖像 pdf”。 是页面。
但 pdf 文件最后不适合 A4 页面。
这是 python 代码:

#!/usr/bin/python3

from weasyprint import HTML, CSS
import subprocess

Page = HTML(url="https://educadhoc.hachette-livre.fr/extract/complet/9782401058705/show-page/page325.xhtml")
Style = CSS(string='''
    @page {
        size: A4 portrait;
        max-height:100%;
        max-width:100%;
        }
''')
Page.write_pdf(target="Try.pdf", zoom=1, stylesheets=[Style])
subprocess.Popen(["evince", "Try.pdf"])

即使在 CSS 样式中使用“尺寸 A4 肖像”和在 write_pdf 方法中使用“zoom=1”,它也不适合 A4!
(pdf 文件中也有换行......)
你有什么建议?

1 个回复

是的。 我改变了..,停止使用 Weasyprint 和 go 到硒,更可定制

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


######  SELENIUM PARAMETERS
path_to_binary = "/usr/bin/firefox-esr"
path_to_webdriver = "/usr/local/bin/geckodriver"
capabilities = webdriver.DesiredCapabilities().FIREFOX
my_options = Options()
my_options.headless = True
my_options.add_argument("--width=1426")
my_options.add_argument("--height=2048")
my_options.binary_location = path_to_binary
my_service = Service(path_to_webdriver)


######  GO GO GO !
driver = webdriver.Firefox(service=my_service, options=my_options)
driver.get("https://educadhoc.hachette-livre.fr/extract/complet/9782401058705/show-page/page325.xhtml")
driver.execute_script("document.body.style.transform = 'scale(3)'")
driver.find_element_by_tag_name("body").screenshot("TRY.png")
driver.implicitly_wait(2)
driver.close()
  • 它就像一个魅力,但在一个 png 图像文件中(还不错); 根据 Firefox 检查员,原始 web 页面为 1426x2048。
  • 我在driver.execute_script行中放置了一个scale(3) ,您可以根据自己的需要进行调整,以便获得 3 倍高的图像尺寸和质量......(但重 3 倍!)
  • 您需要在正确的路径(在我的情况下是/usr/local/bin/geckodriver )中安装 webdriver(在我的情况下是 firefox),并且您也必须找到二进制路径( /usr/local/bin/firefox-esr在我的情况下)。
  • Firefox(对于 Linux、Mac 或 Win)的最后一个 webdriver 可在以下位置下载: https://github.com/mozilla/geckodriver
  • 然后,你可以用这个 PNG 文件做你想做的事。 (例如,如果需要,请使用imagemagick转换为 pdf 等不同格式...)链接到转换

  • 希望它可以帮助您和其他 Python 初学者...

1 为什么 JRPrintServiceExporter 不适合 A4 页面?

我们使用 jasper 进行报告。 在浏览器的预览模式下,它适合 A4 页面,但是,当它通过 JRPrintServiceExporter 打印时,它不适合 A4 页面。 我有以下代码: 您可以找到通过浏览器预览打印打印的页面: 但这是通过上面代码中的 JRPrintServiceExporte ...

2 缩小到不适合整个A4页面宽度

我有一个HTML文件,其中“页面”部分的编码如下: 我们的客户要求是,当将打印选项选择为“缩小以适合”时,打印预览和打印显示的页面与A4尺寸的宽度和高度不匹配。它在右边留有很多空间边框和底部。 因此,请提出可以满足要求的建议,即选择“缩小以适合页面”的页面应导致页面占据整个A4纸的90 ...

2018-01-30 11:12:54 0 180   html/ css
3 Laravel 视图不适合 dompdf 生成 pdf

我在 laravel 版本 8+ 中使用 dompdf,我通过首先加载视图然后提取其内容并将其保存为 Z437175BA4191210EE004E1D937494D09 文件成功生成了 pdf。 我的视图中只有 1 个由 dompdf 加载的表,它不适合页面。 pdf 有谁知道如何解决这个问题? ...

4 tcpdf 中的图像不适合 pdf

我无法在 pdf 的所有宽度上定义背景图像。 pdf 是 Letter US,参数中的格式“L” pdf 的大小为 279.4x215.9 打印的图像大小为 3300x2550px 27.94mm 21.59mm dpi 300 图像占宽度和高度的 80%。 我想要 100% 没有边距,没有填充 ...

2020-10-08 13:40:21 0 6   tcpdf
5 为什么我的表不适合 PDF output?

我正在使用FPDF (从 PHP 生成 PDF)。 我想在表格标题中显示我数组中的所有项目,但只显示了一些,比如列表太大而无法容纳,但格式不正确。 我还不明白如何移动我的表 header 的尺寸。 这是我的代码: ...

6 画布不适合放入PDF

我正在尝试使用jsPDF将HTML转换为PDF,但是由于某些原因,图像无法容纳在pdf中。 我已经增加了图像宽度,但没有结果。 我想听听我做错了什么。 谢谢。 这是我的屏幕(html) 这是PDF结果 这是我的代码。 任何帮助将不胜感激。 ...

10 当页面不适合页面时,文本行会中断-HTML到PDF

我有以下问题。 我正在Coldfusion中处理HTML PDF,但是每当第一行中的一行文本不合适时,它将被切成两半并在下一页继续(请参见图片)。 每次生成时,页面上的内容都会有所不同,因为它是自动生成的个人数据简历(cv)。 我尝试了以下CSS属性,但它们对我都不起作用: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM