PDF」タグアーカイブ

PythonでPDFを作成したい場合はReportLabが便利

PythonでPDFを作成したい場合はReportLabを使うのが便利です。

使い方は次のような感じです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
c = canvas.Canvas('reportlab-sample.pdf', pagesize=A4)

# 直線
from reportlab.lib.units import cm
p = c.beginPath()
p.moveTo(2*cm, 2*cm)
p.lineTo(5*cm, 2*cm)
c.drawPath(p)

# 四角形
c.rect(4*cm, 4*cm, 1*cm, 1*cm)

# テキスト
from reportlab.pdfbase.pdfmetrics import registerFont
from reportlab.pdfbase.ttfonts import TTFont
registerFont(TTFont('M+ 1p:style=light', 'mplus-1p-light.ttf'))
c.setFont('M+ 1p:style=light', 24)
c.drawString(2*cm, 8*cm, u'こんにちは世界!')

c.stringWidth(u'こんにちは世界!')

c.save()

出力されるPDFファイルのサンプルはこちらです。

ReportLabは純粋なPythonで書かれたオープンソースのライブラリになっていますので、Webサービスに組み込んで使うことも簡単です。

リンク

ReportLab Toolkit – ReportLab.com
https://www.reportlab.com/software/opensource/rl-toolkit/

M+ FONTS
https://mplusfonts.github.io/

PDFの分割と結合

Linuxのコマンドpdfseparatepdfuniteを使ってPDFの分割と結合ができます。

PDFの分割

input.pdfを1ページずつに分割してoutput1.pdf、output2.pdfを作成

$ pdfseparate input.pdf output%d.pdf

PDFを結合

input1.pdf、input2.pdf、input3.pdfを結合したoutput.pdfを作成

$ pdfunite input1.pdf input2.pdf input3.pdf output.pdf

HTMLにPDFを埋め込むスクリプト

HTMLドキュメントの中にPDFオブジェクトを埋め込むことができるJavaScriptのライブラリ。

pdfobject How to use PDFObject
http://pdfobject.com/instructions.php

JavaScriptで

var variablename = new PDFObject({ url: "file.pdf" }).embed("targetElementID");

とするだけで、HTMLドキュメントに埋め込めるため、お手軽に使えます。