Code Monkey home page Code Monkey logo

h5-transfer-pdf's Introduction

h5-transfer-pdf

H5TransferPDF是一个将网页HTML渲染为PDF和各种图像格式的API工具,完美兼容HTML、CSS、JS,较好的排版支持,并支持生成多种版本的PDF。

好未来内部有很多使用PDF的场景,比如讲义、排版等,尤其在排版中,一方面对性能有一定的要求,另一方面对排版、样式展示等要求较高。在长期使用过程中,总结了很多关于PDF生成等方面的经验,并已经应用到很多应用场景,经历了较多场景的考验。

H5TransferPDF正处于逐渐开源的过程中,我们会逐渐抽象PDF生成的经验,开源至H5TransferPDF中。我们崇尚开放、共享的精神,欢迎小伙伴参与交流及开源共建,您的宝贵意见和经验我们都会认真考虑,并逐渐完善H5TransferPDF。

功能简介

  • 将任何URL或者HTML内容转换为PDF、IMAGE、HTML文件
  • 完美兼容HTML、CSS、JS
  • 支持Latex、SVG、动态排版、转曲等功能
  • 对外提供API接口,参数可配置化
  • 支持元素渲染延迟加载
  • 支持多版本PDF的生成,主要包括:标准PDF、转曲版PDF、图片版PDF等
  • 支持PDF证书认证

备注:其中一些功能将陆续开源,实际以版本内提供的功能为准

完整文档地址

h5-transfer-pdf's People

Contributors

zhaiyarong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

h5-transfer-pdf's Issues

关于文字乱码问题

作者你好:

首先,非常感谢你的分享,我在windows上尝试运行了,效果还不错。

我这里遇到了在centos7上运行的问题,中途都没报错,就是导出的pdf文字是乱码,请问要如何解决呢?

期待你的回复,谢谢!

render PDF fail 没有setOutput方法

ERROR] 2021-06-08 17:48:27.092 [http-nio-8084-exec-2] c.t.generate.pdf.exception.GlobalExceptionHandler[pdfGenerateException][48] - error:
com.tal.generate.pdf.exception.PdfGenerateException: render PDF fail
at com.tal.generate.pdf.service.GeneratePdfCommandService.generatePdf(GeneratePdfCommandService.java:52)

public Result generatePdf(String pdfName, GenerateDto generatePdfDto) throws PdfGenerateException {
    String path = "";
    try {
        generatePdfDto.setOutput(FileUtil.getAbsoluteFilePath(getPdfFileName(generatePdfDto.getOutput(), pdfName)));
        path = renderPdf(generatePdfDto);
    } catch (IOException e) {
        LOG.error("render PDF fail ", e);
        throw new PdfGenerateException("render PDF fail", e);
    }

没有这个 generatePdfDto.setOutput 方法,

转换pdf时报错,服务器抛出异常

我按照文档中的步骤进行安装部署,成功了,但是对文档进行转换时报错:
请求JSON:
{
"url": "https://www.qq.com/",
"outputType": "PDF",
"fileName": "test1"
}

返回响应:
{
"content": null,
"status": false,
"message": "render PDF fail"
}

服务器上抛出异常:
[DEBUG] 2020-10-02 21:14:08.650 [http-nio-8084-exec-5] com.tal.generate.pdf.pdf.GenerateCommon[readProcessOnError][108] - process exec result: ["module.js:549"," throw err;"," ^","","Error: Cannot find module \u0027/data/h5-transfer-pdf-1.0.0/file:/data/h5-transfer-pdf-1.0.0/lib/log4j-api-2.13.3.jar!/META-INF/versions/9/static/render-pdf.js\u0027"," at Function.Module._resolveFilename (module.js:547:15)"," at Function.Module._load (module.js:474:25)"," at Function.Module.runMain (module.js:693:10)"," at startup (bootstrap_node.js:188:16)"," at bootstrap_node.js:609:3"]
[ERROR] 2020-10-02 21:14:08.651 [http-nio-8084-exec-5] c.t.generate.pdf.service.GeneratePdfCommandService[generatePdf][51] - render PDF fail

几个问题讨论

1.这样计算亲和并且需要 cpu 时间较重的服务,在服务入口最好是否有服务内部的限流,用来做快速返回和快速失败?
2.一次请求 pdf 直接启动一个进程这样的方式对整体服务器负载较重,是否最好可以改成node 服务单独部署方式,通过 node 集群或者单台机器多个 browser 热备的方式,可以降低 browser 频率启动带来的负载问题
3.
image
这个地方的线程池数量是否可以调整,由于主要影响吞吐的在于 node puppeteer browser 可并发进程数,线程池数量太少反而会影响服务的吞吐量

谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.