api2pdf / api2pdf.php
此客户端库是 Api2Pdf.com REST API 的封装。请参阅完整的 REST API 文档:https://www.api2pdf.com/documentation/v2。Api2Pdf 是一个功能强大的 API,支持将 HTML 转换为 PDF、URL 转换为 PDF、HTML 转换为图片、URL 转换为图片、Office 文件的缩略图/图片预览,以及 Office 文件(Word 转换为
Requires
- php: >=5.6
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-23 02:38:52 UTC
README
用于 Api2Pdf REST API 的 PHP 代码 Api2Pdf
Api2Pdf.com 是一个强大的 REST API,可以即时从 HTML、URL、Microsoft Office 文档(Word、Excel、PPT)、电子邮件文件和图像中生成 PDF 和 Office 文档。您可以生成 PDF、Office 文件或电子邮件文件的图片预览或缩略图。该 API 还支持合并/连接两个或多个 PDF 文件、在 PDF 文件上设置密码以及向 PDF 文件添加书签。Api2Pdf 是对以下流行库的封装:wkhtmltopdf、Headless Chrome、PdfSharp 和 LibreOffice。
安装
从命令行运行以下命令
$ composer require api2pdf/api2pdf.php
不使用 Composer 的使用方法
将位于 src
目录中的文件复制到您的项目子目录中,然后在您的 PHP 文件开头添加以下内容
require_once 'your-own-directory/Api2Pdf.php';
资源
此 API 支持的资源
授权
获取 API 密钥
在 portal.api2pdf.com 上创建账户以获取您的 API 密钥。
使用方法
初始化客户端
所有使用都从调用导入命令并初始化客户端开始,将 API 密钥作为参数传递给构造函数。
use Api2Pdf\Api2Pdf; $apiClient = new Api2Pdf('YOUR-API-KEY');
一旦初始化了客户端,您就可以像这样进行调用
$result = $apiClient->chromeHtmlToPdf('<p>Hello, World</p>'); echo $result->getFile();
结果格式
每个 API 调用都会返回一个 ApiResult 对象。如果调用失败,则将抛出异常,其中包含失败结果的消息。
其他属性包括总数据使用量以及 API 调用的费用,通常是非常小的分数。
$file = $result->getFile(); $cost = $result->getCost(); $mbOut = $result->getMbOut(); $seconds = $result->getSeconds(); $responseId = $result->getResponseId();
wkhtmltopdf
将 HTML 转换为 PDF
$result = $apiClient->wkHtmlToPdf('<p>Hello, World</p>');
将 HTML 转换为 PDF(在浏览器窗口中加载 PDF 并指定文件名)
$result = $apiClient->wkHtmlToPdf('<p>Hello, World</p>', $inline = false, $fileName = "test.pdf");
将 HTML 转换为 PDF(使用参数进行高级 wkhtmltopdf 设置) 查看可用的 wkhtmltopdf 选项列表。
$options = [ "orientation" => "landscape", "pageSize" => "A4" ]; $result = $apiClient->wkHtmlToPdf('<p>Hello, World</p>', $inline = false, $filename = "test.pdf", $options = $options);
将 URL 转换为 PDF
$result = $apiClient->wkUrlToPdf('http://www.api2pdf.com');
将 URL 转换为 PDF(在浏览器窗口中加载 PDF 并指定文件名)
$result = $apiClient->wkUrlToPdf('http://www.api2pdf.com', $inline = false, $fileName = "test.pdf");
将 URL 转换为 PDF(使用参数进行高级 wkhtmltopdf 设置) 查看可用的 wkhtmltopdf 选项列表。
$options = [ "orientation" => "landscape", "pageSize" => "A4" ]; $result = $apiClient->wkUrlToPdf('http://www.api2pdf.com', $inline = false, $filename = "test.pdf", $options = $options);
无头 Chrome
将 HTML 转换为 PDF
$result = $apiClient->chromeHtmlToPdf('<p>Hello, World</p>');
将 HTML 转换为 PDF(在浏览器窗口中加载 PDF 并指定文件名)
$result = $apiClient->chromeHtmlToPdf('<p>Hello, World</p>', $inline = false, $filename = "test.pdf");
将 HTML 转换为 PDF(使用参数进行高级无头 Chrome 设置) 查看可用的无头 Chrome 选项列表。
$options = [ "landscape" => true ]; $result = $apiClient->chromeHtmlToPdf('<p>Hello, World</p>', $inline = false, $filename = "test.pdf", $options = $options);
将 URL 转换为 PDF
$result = $apiClient->chromeUrlToPdf('http://www.api2pdf.com');
将 URL 转换为 PDF(在浏览器窗口中加载 PDF 并指定文件名)
$result = $apiClient->chromeUrlToPdf('http://www.api2pdf.com', $inline = false, $filename = "test.pdf");
将URL转换为PDF(使用参数进行高级无头Chrome设置) 查看可用的无头Chrome选项完整列表。
$options = [ "landscape" => true ]; $result = $apiClient->chromeUrlToPdf('http://www.api2pdf.com', $inline = false, $filename = "test.pdf", $options = $options);
将HTML转换为图像
$result = $apiClient->chromeHtmlToImage('<p>Hello, World</p>');
将HTML转换为图像(在浏览器窗口中加载图像并指定文件名)
$result = $apiClient->chromeHtmlToImage('<p>Hello, World</p>', $inline = false, $filename = "test.jpg");
将HTML转换为图像(使用参数进行高级无头Chrome设置) 查看可用的无头Chrome选项完整列表。
$options = [ "fullPage" => true ]; $result = $apiClient->chromeHtmlToImage('<p>Hello, World</p>', $inline = false, $filename = "test.jpg", $options = $options);
将URL转换为图像
$result = $apiClient->chromeUrlToImage('http://www.api2pdf.com');
将URL转换为图像(在浏览器窗口中加载图像并指定文件名)
$result = $apiClient->chromeUrlToImage('http://www.api2pdf.com', $inline = false, $filename = "test.jpg");
将URL转换为图像(使用参数进行高级无头Chrome设置) 查看可用的无头Chrome选项完整列表。
$options = [ "fullPage" => true ]; $result = $apiClient->chromeUrlToImage('http://www.api2pdf.com', $inline = false, $filename = "test.jpg", $options = $options);
LibreOffice
将任何办公文件转换为PDF,将图像文件转换为PDF,将电子邮件文件转换为PDF,将HTML转换为Word,将HTML转换为Excel,以及将PDF转换为HTML。任何可以合理通过LibreOffice打开的文件都应该可以转换。此外,我们还有一个用于生成PDF或Office文档第一页缩略图的端点。这对于为用户生成文件图像预览非常棒。
您必须提供文件的url。我们的引擎将消费该URL上的文件并将其转换为PDF。
将Microsoft Office文档或图像转换为PDF
$result = $apiClient->libreOfficeAnyToPdf('https://www.api2pdf.com/wp-content/themes/api2pdf/assets/samples/sample-word-doc.docx');
PDF或Office文档或电子邮件文件的缩略图或图像预览
$result = $apiClient->libreOfficeThumbnail('https://www.api2pdf.com/wp-content/themes/api2pdf/assets/samples/sample-word-doc.docx');
将HTML转换为Microsoft Word或Docx
$result = $apiClient->libreOfficeHtmlToDocx('http://www.api2pdf.com/wp-content/uploads/2021/01/sampleHtml.html');
将HTML转换为Microsoft Excel或Xlsx
$result = $apiClient->libreOfficeHtmlToXlsx('http://www.api2pdf.com/wp-content/uploads/2021/01/sampleTables.html');
将PDF转换为HTML
$result = $apiClient->libreOfficePdfToHtml('http://www.api2pdf.com/wp-content/uploads/2021/01/1a082b03-2bd6-4703-989d-0443a88e3b0f-4.pdf');
PdfSharp - 合并/连接两个或更多PDF,为PDF添加书签,为PDF添加密码
要使用合并端点,提供现有PDF的url列表。引擎将消费所有PDF并将它们合并为单个PDF,顺序与列表中提供的方式相同。
从URL列表合并PDF到现有PDF
$linksToPdfs = ['https://LINK-TO-PDF', 'https://LINK-TO-PDF']; $mergeResult = $apiClient->pdfsharpMerge($linksToPdfs);
为现有PDF添加书签
$linkToPdf = 'https://LINK-TO-PDF'; $bookmarks = [ [ "Page" => 0, "Title" => "Introduction" ], [ "Page" => 1, "Title" => "Second page" ] ]; $bookmarkResult = $apiClient->pdfsharpAddBookmarks($linkToPdf, $bookmarks);
为现有PDF添加密码
$linkToPdf = 'https://LINK-TO-PDF'; $userpassword = 'hello'; $bookmarkResult = $apiClient->pdfsharpAddPassword($linkToPdf, $userpassword);
辅助方法
delete($responseId)
默认情况下,Api2Pdf将在生成后的24小时后删除您的生成文件。对于有高度安全需求的人,您可能希望在命令下删除您的文件。您可以通过带有返回在原始JSON有效负载中返回的responseId
属性的DELETE API调用来实现。
$result = $apiClient->chromeHtmlToPdf("<p>Hello World</p>"); $responseId = $result->getResponseId(); //delete pdf $apiClient->utilityDelete($responseId);