如何在上传前旋转现有的pdf

时间:2015-04-20 10:10:14

标签: javascript php pdf cakephp-2.0 uploading

我试图弄清楚如何在上传到服务器时旋转pdf文件-90度。
我知道我不能要求工具或网站等。
但经过大量搜索后,这里有stackoverflow,google,php.net我无法找到我需要的东西。我只希望有人能把我送到正确的方向。

我目前正在使用cakephp 2.0x。并使用jose gonzalez upload cakephp

中的上传插件

我尝试在创建之后和保存之前编写其他函数:

$this->Post->create();
$this->rotate_pdf($this->request->data['model']['file']);                <-----
if ($this->Post->save($this->request->data)) {

这是功能

plublic function rotate_pdf($pdf){
    pdf_open_file($pdf);
    pdf_rotate($pdf, -90);
    pdf_close($pdf);
    return $pdf;
}

但它给了我一个错误:undefined function pdf_open_file();

以下是一些工作示例:
http://www.rotatepdf.net/
https://www.pdfrotate.com/
http://www.rotatepdf.eu/index.html
但我不希望我的脚本下载新文件,只是将其上传到我的服务器。

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

我们提供了一个能够以简单方式完成此任务的组件(SetaPDF-Core - 不是免费的!):

<?php
//require autoloader
require_once("library/SetaPDF/Autoload.php");

// create a file writer
$writer = new SetaPDF_Core_Writer_File("rotated.pdf");
// load document by filename
$document = SetaPDF_Core_Document::loadByFilename('your.pdf', $writer);

// get pages object
$pages = $document->getCatalog()->getPages();
// get page count
$pageCount = $pages->count();

for ($pageNumber = 1; $pageNumber <= $pageCount; $pageNumber++) {
    // get page object for this page
    $page = $pages->getPage($pageNumber);

    // rotate by...
    $page->rotateBy(-90);
}

// save and finish the document
$document->save()->finish();

可以使用simliar脚本的互动演示here