GVKun编程网logo

使用Python生成报告:PDF或HTML到PDF(python生成pdf报告模块)

16

在这篇文章中,我们将为您详细介绍使用Python生成报告:PDF或HTML到PDF的内容,并且讨论关于python生成pdf报告模块的相关问题。此外,我们还会涉及一些关于Centos7+安装pytho

在这篇文章中,我们将为您详细介绍使用Python生成报告:PDF或HTML到PDF的内容,并且讨论关于python生成pdf报告模块的相关问题。此外,我们还会涉及一些关于Centos7+安装python3+wkhtmltoPdf+pdfkit、html 转 pdf 工具:使用 Java 调用 wkhtmltopdf 将 html 转为 pdf、HTML到PDF与通过PHP以编程方式创建PDF、HTML到PDF转换,11K Star 的pdfmake.js轻松应对的知识,以帮助您更全面地了解这个主题。

本文目录一览:

使用Python生成报告:PDF或HTML到PDF(python生成pdf报告模块)

使用Python生成报告:PDF或HTML到PDF(python生成pdf报告模块)

使用maptplotlib我创建了9个图形,使用命令将它们合并为一个pdf
savefig。但是,我需要能够使用来显示每个图下方的统计分析.describe()。最好的方法是什么?

Centos7+安装python3+wkhtmltoPdf+pdfkit

Centos7+安装python3+wkhtmltoPdf+pdfkit

 前言

       这几天要做一个将HTML转化为PDF的小功能。期间经历了颇多的挫折,刚开始是通过java做的,后来发现java库做这个事情实在是效果不理想,前端做好了样式转完之后会出现很多问题。后来我想起来python的库很丰富就上网找了pdfkit这个库,使用这个库需要安装wkhtmltopdf。完成之后觉得以后可能会需要到就把这个过程给记录下来。

 

安装python3

        Centos7默认安装的有python2.7.5,而且yum也依赖这个东西。当时所以安装python3的时候要注意一下它俩的共存关系。安装完python3需要将软连接改为python3的连接,修改yum什么的。具体可以参考下面这个博客。当时安装这个python的时候真的是一把辛酸泪,我不知道centeos7自带的有python2我还以为我装错了,然后把python2删除了,后来发现yum不能用了然后上网查了一下才发现自己的操作是如此的骚,然后我就试着修复这个问题,最骚的操作是我拿着root的权限来操作,在删除几个文件的时候不小心打出了

rm -rf *

的操作然后把服务器给删了(完美),然后我就开始了漫长的加班之路。

 

wkhtmltoPdf安装

       安装wkhtmltoPdf这个工程还是比较简单的,安装完我运行了一下发现出现了如下错误:

wkhtmltopdf: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory

      这个错误刚开始让我以为是我删除python2删的,然后为了修复python2就开始了我删除服务器的道路(/捂脸哭)。后来发现是少了库,然后就用yum(说实话怎么着我也是要修复python2的,这就是命吧,注定我要删除服务器)安装,如果运行过程中出现其他错误,请看这篇博客。之后你可能会遇见转的pdf都是方块,什么中文不在什么的,请看这篇博客

 

pdfkit安装

        这个是整个过程中最简单的操作。直接

pip install pdfkit

       就可以了。

 

结束语

       嗯,整个操作过程就是这样。从这个过程中我学到一个东西,千万不要轻易使用root权限操作文件,使用删除文件指令的之后一定要看清楚指令,一定要看清楚指令,一定要看清楚指令。

html 转 pdf 工具:使用 Java 调用 wkhtmltopdf 将 html 转为 pdf

html 转 pdf 工具:使用 Java 调用 wkhtmltopdf 将 html 转为 pdf

一、wkhtmltopdf 安装
linux 环境下安装(centos6.5)
1. 安装依赖
$ yum install -y xorg-x11-fonts-75dpi
$ yum install -y xorg-x11-fonts-Type1
$ yum install xz
2. 获取安装包(可根据需要获取不同版本)
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
或者直接到 github 获取下载安装包上传
3. 解压
$ unxz wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
$ tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar
$ mv wkhtmltox /usr/local/wkhtmltox
添加执行命令到系统路径
export PATH=/usr/bin/wkhtmltox/bin:$PATH
移除安装包
$ rm wkhtmltox-0.12.4_linux-generic-amd64.tar
测试生成 pdf
$wkhtmltopdf www.baidu.com baidu.pdf
二、Java 调用 wkhtmltopdf 将 html 生成 pdf

public class HtmlToPdfUtils {
	//windows
	private static String toolWinPath = "D:\\\\software\\\\wkhtmltox-0.12.5-1.mxe-cross-win64\\\\bin\\\\wkhtmltopdf.exe";
	//Linux
	private static String toolLinuxPath = "/usr/bin/wkhtmltox/bin/wkhtmltopdf";
	public static boolean convert(String srcPath, String destPath){
		File file = new File(destPath);
		File parent = file.getParentFile();
		if(!parent.exists()){
			parent.mkdirs();
		}
		StringBuilder cmd = new StringBuilder();
		if(System.getProperty("os.name").indexOf("Windows") == -1){
			//linux系统下wkhtmltopdf安装路径
			cmd.append(toolLinuxPath);
		} else
			cmd.append(toolWinPath);
		cmd.append(" \"").append(srcPath).append("\"").append(" ").append(destPath);
		boolean result = true;
		try {
			Process proc = Runtime.getRuntime().exec(cmd.toString());
			proc.waitFor();
		} catch (IOException | InterruptedException e) {
			result = false;
			e.printStackTrace();
		}
		return result;
	}
	public static void main(String[] args) {
		HtmlToPdfUtils.convert("http://www.baidu.com", "C:\\baidu.pdf");
	}
}


三、使用过程中可能会遇到的问题
1.pdf 生成后中文不显示
解决方法:可能是系统缺少字体文件,wkhtmltopdf 要求生成 pdf 中如果包含中文,那么系统中至少要包含宋体,可以下载字体文件 (simsun.ttc) 上传到 /usr/share/fonts 目录下

2. 生成 pdf 中如果超链包含中文,在 linux 环境中生成之后可能会乱码

解决方法:使用 URLEncoder 将超链编码后再生成

HTML到PDF与通过PHP以编程方式创建PDF

HTML到PDF与通过PHP以编程方式创建PDF

我有一个 PHP应用程序,需要生成一些PDF发票和PDF时间表,页面/页脚很好.某些Stackoverflow用户建议使用TCPDF来创建PDF文档.在我的研究中,我发现了两种生成PDF的方法:

1)以编程方式格式化PDF,如下所示:

$tcpdf->SetFillColor(255,0);
    $tcpdf->SetTextColor(255);
    $tcpdf->SetDrawColor(128,0);
    $tcpdf->Setlinewidth(0.3);
    $tcpdf->SetFont('','B');

2)将HTML转换为PDF

我如何决定应该使用哪种方法?

解决方法

我可以推荐 Zend_Pdf,这是一种根据您的分类的编程方法.

HTML抽象很不错,但我不相信你拥有完整的几何绘图API的全部功能和控制.警惕像fpdf这样的库不支持开箱即用的UTF-8,并使用穷人的解析器将HTML转换为PDF.

关于您的申请,我已经制作了一个生成模板发票的系统.我的用户可以上传由Zend_Pdf提取的PDF模板.然后,此模板将用于生成的发票的每个页面,从而可以轻松进行自定义.

请注意,我的观众主要是能够制作这些模板的平面设计师,因此这是适当的解决方案.如果您的受众只熟悉HTML,则将HTML转换为PDF可能是最佳方式.

HTML到PDF转换,11K Star 的pdfmake.js轻松应对

HTML到PDF转换,11K Star 的pdfmake.js轻松应对

在Web开发中,将HTML页面转换为PDF文件是一项常见的需求。无论是生成报告、发票、还是其他任何需要打印或以PDF格式分发的文档,开发者都需要一个既简单又可靠的解决方案。幸运的是,pdfmake.js库以其轻量级、高性能和易用性,成为了许多开发者的首选。本文将介绍如何使用这个拥有11K Star的GitHub项目来实现HTML到PDF的转换。

什么是pdfmake.js

pdfmake.js是一个基于JavaScript的库,用于在客户端和服务器端生成PDF文档。它允许开发者使用HTML和CSS来设计PDF文档的布局和样式,使得创建复杂的PDF文档变得异常简单。

为什么选择pdfmake.js

  • pdfmake.js的文件大小仅为11KB(压缩后),这使得它成为Web应用中一个非常轻量级的解决方案
  • 拥有超过11K Star的GitHub项目,pdfmake.js得到了广泛的社区支持和认可,稳定性和可靠性值得信任
  • 功能丰富,它支持表格、列表、图片、样式、页眉页脚等多种元素,几乎可以满足所有PDF文档的需求。
  • pdfmake.js可以轻松集成到任何现有的Web应用中,无论是使用Node.js、Angular、React还是Vue.js。

快速开始

安装

通过npm安装pdfmake.js非常简单:

npm install pdfmake

或者,如果你使用yarn:

yarn add pdfmake

创建PDF文档

创建一个PDF文档只需要几个简单的步骤:

  1. 引入pdfmake.js
import  pdfMake from ''pdfmake/build/pdfmake'';

//引入中文字体,避免转换的PDF中文乱码
pdfMake.fonts = {
    AlibabaPuHuiTi: {
        normal: ''https://xx/AlibabaPuHuiTi-3-55-Regular.ttf'',
        bold: ''https://xxx/AlibabaPuHuiTi-3-65-Medium.ttf'',
        italics: ''https://xxx/AlibabaPuHuiTi-3-55-Regular.ttf'',
        bolditalics: ''https://xxx/AlibabaPuHuiTi-3-65-Medium.ttf''
    }
};
  1. 定义文档内容
const dd = {
  content: [
    ''Hello, 我是程序员凌览'',
    { text: ''This is a simple PDF document.'', fontSize: 12 },
    { text: ''It is generated using pdfmake.js.'', bold: true }
  ],
  //设置默认字体
  defaultStyle: {
    font: ''AlibabaPuHuiTi''
  },
};
  1. 创建PDF
const pdf = pdfMake.createPdf(dd);
pdf.getBlob((buffer) => {
   const file = new File([blob], filename, { type: blob.type })
   //上传服务器
});

//或直接下载
pdf.download(''文件名.pdf'')

生成的pdf效果:

想动手体验,请访问pdfmake.org/playground.html。

html-to-pdfmake 强强联合

当PDF文档内容非固定,content字段内的结构要随时可变,不能再像下方代码块一样写死,html-to-pdfmake即为解决这类问题而产生的。

const dd = {
  content: [
    ''Hello, 我是程序员凌览'',
    { text: ''This is a simple PDF document.'', fontSize: 12 },
    { text: ''It is generated using pdfmake.js.'', bold: true }
  ],
  //设置默认字体
  defaultStyle: {
    font: ''AlibabaPuHuiTi''
  },
};

安装

通过npm安装:

npm install html-to-pdfmake

或者,如果你使用yarn:

yarn add html-to-pdfmake

HTML字符串转pdfmake格式

  1. 引入html-to-pdfmake
import  pdfMake from ''pdfmake/build/pdfmake'';
import  htmlToPdfmake from ''html-to-pdfmake'';

//引入中文字体,避免转换的PDF中文乱码
pdfMake.fonts = {
    AlibabaPuHuiTi: {
        normal: ''https://xx/AlibabaPuHuiTi-3-55-Regular.ttf'',
        bold: ''https://xxx/AlibabaPuHuiTi-3-65-Medium.ttf'',
        italics: ''https://xxx/AlibabaPuHuiTi-3-55-Regular.ttf'',
        bolditalics: ''https://xxx/AlibabaPuHuiTi-3-65-Medium.ttf''
    }
};

//它会返回pdfmake需要的数据结构
const html = htmlToPdfmake(`
  <div>
    <h1>程序员凌览</h1>
    <p>
      This is a sentence with a <strong>bold word</strong>, <em>one in italic</em>,
      and <u>one with underline</u>. And finally <a href="https://www.somewhere.com">a link</a>.
    </p>
  </div>
`);
  1. 使用html-to-pdfmake转换的数据结构
const dd = {
  content:html.content, 
  //设置默认字体
  defaultStyle: {
      font: ''AlibabaPuHuiTi''
  },
};
const pdf = pdfMake.createPdf(dd);
pdf.download()

生成的pdf效果:

添加图片要额外设置:

const ret = htmlToPdfmake(`<img src="https://picsum.photos/seed/picsum/200">`, {
  imagesByReference:true
});
// ''ret'' contains:
//  {
//    "content":[
//      [
//        {
//          "nodeName":"IMG",
//          "image":"img_ref_0",
//          "style":["html-img"]
//        }
//      ]
//    ],
//    "images":{
//      "img_ref_0":"https://picsum.photos/seed/picsum/200"
//    }
//  }

const dd = {
  content:ret.content,
  images:ret.images
}
pdfMake.createPdf(dd).download();

最后

通过上述步骤,我们可以看到pdfmake.js及其配套工具html-to-pdfmake为Web开发者提供了一个强大而灵活的工具,以满足各种PDF文档生成的需求。无论是静态内容还是动态生成的内容,这个组合都能提供简洁而高效的解决方案。

程序员凌览的技术网站https://linglan01.cn/;关注公粽号【程序员凌览】回复"1",获取编程电子书

今天关于使用Python生成报告:PDF或HTML到PDFpython生成pdf报告模块的分享就到这里,希望大家有所收获,若想了解更多关于Centos7+安装python3+wkhtmltoPdf+pdfkit、html 转 pdf 工具:使用 Java 调用 wkhtmltopdf 将 html 转为 pdf、HTML到PDF与通过PHP以编程方式创建PDF、HTML到PDF转换,11K Star 的pdfmake.js轻松应对等相关知识,可以在本站进行查询。

本文标签: