【问题标题】:How can i print html page at 300 dpi resolution如何以 300 dpi 分辨率打印 html 页面
【发布时间】:2014-04-05 19:41:05
【问题描述】:

我有一个用 html 和 css 编码的网页。 网页大小为 A4 页面 (300dpi) = 2480 X 3508 (PX)。

问题是,当我打印我的网页时,它以 72/96dpi 分辨率打印并打印 7 页而不是 1 页,我希望打印机以 300dpi 分辨率打印我的网页。

CSS、HTML、JAVASCRIPT 中的一些代码或可以帮助我的东西?

谢谢。

【问题讨论】:

  • 我相信您必须将网页输出到图像并设置图像的分辨率。查看this thread
  • 谢谢,但我用另一种方式搜索 :)
  • @user3502020 愿意分享您的发现吗?
  • 您可以在浏览器的打印对话框中更改比例。

标签: javascript html css printing


【解决方案1】:

你可以像这样使用 CSS:

@media print {
    @page {
        size: 210mm 297mm;
    }
}

或使用像素:

@media print {
    @page {
        size: 2480px 3508px;
    }
}

https://developer.mozilla.org/en-US/docs/Web/CSS/@media#media_types

【讨论】:

    【解决方案2】:

    HTML/CSS 是矢量图形。您有 css 测量单位“px”(始终为 72ppi,因此可能有点误导),但它实际上不是光栅图形 - 希望它应该被打印机软件视为矢量。如果您发现以 72dpi 打印的线条、文本等,您可以确定问题出在您的打印机/渲染器软件上。尝试使用其他浏览器或先将其保存为 PDF(我知道 Chrome 本身可以做到这一点)。

    然而由于 CSS 测量单位“px”是 72ppi,因此光栅图形(=png、jpg 和 gif 图像)始终被视为 72ppi - 即使它们以其他分辨率保存。但是您可以通过调整图像大小来强制图像达到所需的分辨率。如果我有一张5x5 centimeters (=2x2 inches) 的图像,我需要将其保存为600x600px,但将其 CSS 宽度属性设置为144px(即width*(72/300))使其看起来像 5 厘米网站。

    如果图像的大小调整到合适的分辨率,您应该能够以 300dpi 的分辨率打印它而不会出现任何问题 - 特别是如果您先将其保存为 pdf。否则很可能是打印机/打印机软件。

    请记住,网络不是印刷品,不能期望网页在屏幕和印刷品上看起来完全一样 - 这就是重点。如果这就是你要找的应该只使用 PDF。

    【讨论】:

    • 一个 CSS px 是虚拟的。它实际上很少等于 1/72 英寸。
    【解决方案3】:

    抱歉,您需要将网页转换为 300 DPI 的 PDF。

    以 PHP 和 dompdf 为例

        $dompdf = new Dompdf(array('enable_remote' => true));
        $dompdf->set_option('dpi', 300);
        $dompdf->loadHtml($html);
        $dompdf->render();
        $dompdf->stream($filename.'.pdf',array('Attachment'=>0));
    

    【讨论】:

      【解决方案4】:

      我使用 pdfkit 制作了类似的东西,但我认为它必须与 python 一起使用或更具体地说我将它与 django 一起使用,它对我来说很好,并创建了一个 300dpi pdf 试试这个

      选项 = { 'page-size': '字母', 'margin-top': '0.75in', 'margin-right': '0.75in', 'margin-bottom': '0.75in', 'margin-left': '0.75in', '编码': "UTF-8", 'dpi': '300', '自定义标题':[ ('接受编码','gzip') ] '曲奇饼': [ ('cookie-name1', 'cookie-value1'), ('cookie-name2', 'cookie-value2'), ], “无大纲”:无 }

      pdfkit.from_url('http://google.com', 'out.pdf', options=options)

      https://github.com/JazzCore/python-pdfkit/blob/master/README.rst

      【讨论】:

      • 仅链接的答案通常是 Stack Overflow 上的 frowned upon。随着时间的推移,链接可能会萎缩并变得不可用,这意味着您的答案将来对用户毫无用处。如果您可以在实际帖子中提供答案的一般详细信息,并引用您的链接作为参考,那将是最好的。
      【解决方案5】:

      很遗憾,网页分辨率为 72 dpi。我相信这是浏览器的固有设置。如果您在打印时调整浏览器的设置或打印机的设置为“适合页面”,您可能会取得一些成功。

      【讨论】:

      • 这有点不正确。没有“网络分辨率”。浏览器在打印时可能会转换为“72dpi”进行打印。
      • 是的,@DA。你是对的。围绕它存在一个神话,因为分辨率与屏幕与打印有关。对于适当/干净的“屏幕打印”翻译,屏幕通常显示的“网络分辨率”是 72。一篇很好的文章更详细地解释,以及讨论神话位于:photoshopessentials.com/essentials/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多