【问题标题】:transform - rotate and scale is not working when i convert html content to pdf转换 - 当我将 html 内容转换为 pdf 时,旋转和缩放不起作用
【发布时间】:2013-03-23 22:04:06
【问题描述】:

我正在使用 html2pdf 将带有图像的 HTML 内容转换为 PDF,并且我还添加了一个选项来旋转和翻转图像... 现在 pdf 已成功创建......但是如果我使用 CSS 旋转或翻转了任何图像 transform: rotate(90deg);

transform:scaleX(-1);

然后在 PDF 文件中,该图像看起来没有旋转或翻转... 任何解决此问题的想法...请分享...或任何解决方案。

提前致谢。

【问题讨论】:

标签: css rotation transform scale html2pdf


【解决方案1】:

试试 wkhtmltopdf,它也适用于 css 转换(但只能使用 -webkit 前缀)

https://code.google.com/p/wkhtmltopdf/

【讨论】:

  • 嗨...我在html2pdf.class.php中得到了一个函数_prepareTransform ....但我没有..如何使用它??或者 wkhtmltopdf 是否能够使用 tranform 转换 html 内容:缩放,旋转大量图像......我已经用谷歌搜索了很多次,但不幸的是我没有得到任何东西......这对我有帮助......谢谢提前...
  • 我没有使用过 html2pdf,所以我对此一无所知.. wkhtmltopdf 将使用任何转换转换 html,但我认为您想在代码中使用它白色 wkhtmltopdf 是命令行工具
  • 感谢 Yogesh 提供的信息.. 我会尝试实现这一点...你能告诉我.. 你为什么说 wkhtmltopdf 仅适用于 -webkit 前缀。是否有任何链接或任何带有一些解释的示例:如何使用它?我可以在本地主机中实现它吗?谢谢..
  • 因为它使用 webkit 来渲染 html。我认为在答案中给出的链接中,您可以找到所需的一切。还有一个 wiki,其中给出了一些示例,甚至用于将其与 php 集成。我使用 wkhtmltopdf 在 php 中使用 system/exec 调用将 html 转换为 pdf。
  • @YogeshKhatri:对于 Rails,还有一个不错的 GEM,它包裹了 whhtml2pdf (wickedpdf)。所以你可以像使用rails中的任何格式一样使用它。即没有命令行。我只是想提一下。
【解决方案2】:

使用“-webkit-transform”而不是“transform”。例如:

 -webkit-transform: rotate(90deg);

【讨论】:

  • 尝试使用-webkit-transform: rotate(90deg);连同 -webkit-backface-visibility: hidden;
【解决方案3】:

尝试style="-webkit-transform: rotate(-90deg);" 而不是转换。

html-pdfhtml2pdf 转换器都适用于我。

【讨论】:

    【解决方案4】:

    我重新发布这个旧帖子。 对于仍在寻找使用 CSS3 和 HTML5 最新功能的 wkhtmlToPdf 或 wkhtmlToImage 的替代品的人来说,由于这个 github 问题,我在这里找到了两个工具:

    https://github.com/wkhtmltopdf/wkhtmltopdf/issues/4092

    所以有两个很棒的工具可以直接使用 Chromium 浏览器,我使用的一个是 Pupputer,它允许您通过 Node.js 代码使用它(所以这对Node.js 网络服务器?!),截取网页截图并将其转换为 pdf 或图像。

    它还允许您选择基于 Chromium 的浏览器?!!!(使用 puppeteer-core 而不是 puppeteer 用于轻型版本并使用外部 Chromium)

    我尝试了一下,它只是渲染了一个与您在 chromium 浏览器上看到的相同的屏幕截图,我使用 rotateX, rotateY, rotateZperspective 的 CSS 属性并且效果很好。

    享受!!!

    木偶师:https://github.com/puppeteer/puppeteer

    ChromeHtmlToPdf : https://github.com/Sicos1977/ChromeHtmlToPdf

    下面是一个简单的代码,可以在本地使用 Node.js 进行尝试:

    // I use here the light version so I can choose my default chromium browser that I used on my Windows
        // to install it :
        // npm -i puppeteer-core
        const puppeteer = require('puppeteer-core');
        (async ()=>{
            // path to my default browser, idk if it's work with opera or other chromium based browser
            const browser = await puppeteer.launch({ executablePath: 'E:/Programmes/chrome-win/chrome.exe' });
            const page = await browser.newPage();
            
            // the default size if 800 * 600
            await page.setViewport({
                width: 800,
                height: 533,
                deviceScaleFactor: 1,
            });
            
            // the page targeted that I want the screenshot
            await page.goto('http://localhost/Fiverr/3dAxis/temp/2_photo2.jpg.html');
            
            // the output
            await page.screenshot({ path: 'example.png' });
            await browser.close();
        })();
    

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 1970-01-01
      • 2023-02-26
      • 2018-03-28
      • 1970-01-01
      • 2013-11-05
      • 2021-08-12
      • 1970-01-01
      相关资源
      最近更新 更多