1. 製品
  2.   PDF
  3.   Python
  4.   PDFsuite
 
  

Python API を介して PDF を作成、編集、画像に変換

PDF を作成、編集、および画像から画像へ、またはその逆に変換するための無料の Python API。 PDF を結合/分割してテキストに変換し、PDF を回転/トリム/クロップします。

PDFsuite は、PDF ドキュメントの作成と管理に関連する完全な機能を提供する非常に便利な Python ライブラリです。ライブラリは非常に安定しており、MacOS (OS X) で簡単に実行できます。 PDFsuite は非常に使いやすく、PDF ファイルを管理する機能をユーザーに提供し、PDF に対して実行したいことはすべてクリックするだけで実行できます。

このライブラリは非常に機能が豊富で、PDF ドキュメントの PDF への変換、PDF ドキュメントの結合または分割、画像の PDF への変換、PDF の回転、PDF へのページ番号の追加、透かしの挿入など、PDF ドキュメントの処理に関連するいくつかの重要な機能が含まれています。 PDF、PDF へのグラフィックの描画、PDF へのクォーツ フィルターの適用、メタデータへのアクセスと読み取り、PDF ページの画像としてのエクスポート、PDF 内のページのカウントなど。 PDFsuite スクリプトはオープン ソースであり、あらゆる種類のプロジェクトで完全に無料で使用でき、あらゆる方法で適応させることができます。

Previous Next

PDFsuiteを始める

PDFsuite を実行するには、まず python 3 と pyobjc ライブラリをインストールする必要があります。そして、ターミナルで次のコマンドを入力し、Return を押して下さい。

pipでpyobjcをインストールする

 pip3 install pyobjc 

ライブラリを手動でインストールすることもできます。 GitHub リポジトリから最新のリリース ファイルを直接ダウンロードします。

PDFを画像やその他フォーマットに変換する

PDFsuite は、PDF 文書をさまざまな画像ファイル形式に変換するための完全な機能を組み込まれています。 NG、JPEG、Diff、その他の一般的な画像ファイル形式を提供します。 提供されたPDF文書の各ページから、バットマンイメージを容易に作成することもできます。 プロセスが完了したら、各ファイルに別の名前を割り当て、ディスクに保存する必要があります。 また、解像度、透明性、その他のパラメータの変更にも対応しています。 PDFファイルをテキストやその他のファイル形式に変換することもできます。

Pythonスクリプトを使用して複数のPDFファイルを結合

異なる PDF ドキュメントを結合して新しい PDF ファイルを作成する必要がある状況に陥ったことはありませんか?組織では、複数の PDF ファイルを 1 つのドキュメントにマージする必要があることがよくあります。 PDFsuite ライブラリを使用すると、ユーザーは、数行の Python コードだけで、複数の PDF ドキュメントを 1 つのドキュメントに簡単に結合できます。また、各コンポーネント ファイルの目次エントリも追加されます。このライブラリは、Python アプリ内で大きな PDF ドキュメントを小さなドキュメントに分割することも完全にサポートしています。

Python APIで複数のPDFファイルをマージ

def merge(filename):
	writeContext = None
	shortName = os.path.splitext(filename)[0]
	outFilename = shortName + "+wm.pdf"
	metaDict = getDocInfo(filename)
	writeContext = createOutputContextWithPath(outFilename, metaDict)
	readPDF = createPDFDocumentWithPath(filename)
	mergePDF = createPDFDocumentWithPath(watermark)
	if writeContext != None and readPDF != None:
		numPages = Quartz.CGPDFDocumentGetNumberOfPages(readPDF)
		for pageNum in range(1, numPages + 1):	
			page = Quartz.CGPDFDocumentGetPage(readPDF, pageNum)
			mergepage = Quartz.CGPDFDocumentGetPage(mergePDF, 1)
			if page:
				mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
				if Quartz.CGRectIsEmpty(mediaBox):
					mediaBox = None			
				Quartz.CGContextBeginPage(writeContext, mediaBox)	
				Quartz.CGContextSetBlendMode(writeContext, Quartz.kCGBlendModeOverlay)
				Quartz.CGContextDrawPDFPage(writeContext, page)
				Quartz.CGContextDrawPDFPage(writeContext, mergepage)
				Quartz.CGContextEndPage(writeContext)
		Quartz.CGPDFContextClose(writeContext)
		del writeContext
	else:
		print ("A valid input file and output file must be supplied.")
		sys.exit(1)
if __name__ == "__main__":
	for filename in sys.argv[1:]:
		merge(filename)

Python経由でPDFファイルをテキストファイルに変換

オープンソース PDFsuite ライブラリには、PDF ドキュメント変換の重要な機能がいくつものサポートファイル形式に含まれています。 1つの重要な機能は、PDFファイルのテキストコンテンツを外部テキストファイルに変換し、選択した場所に保存します。 PDF文書の各ページを別のファイルとして保存し、別の名前で保存することもできます。

Python API を介して PDF ドキュメントをテキスト ファイルに変換する

import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
# Can't seem to import this constant, so manually creating it.
NSUTF8StringEncoding = 4
def main():
	for filename in sys.argv[1:]:	
		shortName = os.path.splitext(filename)[0]
		outputfile = shortName+" text.txt"
		pdfURL = NSURL.fileURLWithPath_(filename)
		pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
		if pdfDoc :
			pdfString = NSString.stringWithString_(pdfDoc.string())
			pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)
if __name__ == "__main__":
   main()

Pythonアプリの回転、トリム、クロップPDFsまたはページ

PDFsuite ライブラリには、PDF ファイルを簡単に処理するための重要な機能がいくつか含まれています。プログラマーは、独自の Python アプリケーション内で PDF ドキュメントを回転、トリミング、トリミング、色合い、透かし、拡大縮小、およびリンスすることができます。 PDF ページまたは完全なファイルを回転させる 2 つの方法が用意されています。 1 つ目は、新しい PDF コンテキストを作成し、オリジナルの各ページをグラフィカルに変換してファイルを保存することです。次に、各ページの「回転」パラメータを調整するだけです。

 

Python APIでPDFファイルをトリムする方法

import sys
import os
from Quartz import PDFDocument, kPDFDisplayBoxMediaBox, kPDFDisplayBoxTrimBox, CGRectEqualToRect
from CoreFoundation import NSURL
mediabox = kPDFDisplayBoxMediaBox
trimbox = kPDFDisplayBoxTrimBox
def trimPDF(filename):
	hasBeenChanged = False
	# filename = filename.decode('utf-8')
	shortName = os.path.splitext(filename)[0]
	outFilename = shortName + " TPS.pdf"
	pdfURL = NSURL.fileURLWithPath_(filename)
	pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
	if pdfDoc:
		pages = pdfDoc.pageCount()
		for p in range(0, pages):
			page = pdfDoc.pageAtIndex_(p)
			mediaBoxSize = page.boundsForBox_(mediabox)
			trimBoxSize = page.boundsForBox_(trimbox)
			if not CGRectEqualToRect(mediaBoxSize, trimBoxSize):
				page.setBounds_forBox_(trimBoxSize, mediabox)
				hasBeenChanged = True
		if hasBeenChanged:
			pdfDoc.writeToFile_(outFilename)
if __name__ == '__main__':
	for filename in sys.argv[1:]:
		trimPDF(filename)
 日本