我正在研究一個插件,它可以從上傳的pdf文件的每個頁面創建jpgs。使用WordPress插件從PDF創建jpgs
我使用wp_handle_upload
動作和檢查MIME類型的PDF。 之後,我使用Imagick獲取頁面數量並從每個頁面創建一個新的jpg。然後文件被上傳。
我認爲WordPress從頭開始不支持ImageMagick,所以我安裝了ImageMagick Engine Plugin。
當我現在在Wordpress中上傳文件時,我只是得到一個錯誤。我不知道什麼是行不通的。
任何有關錯誤的想法?
感謝,奧利弗
function process_pdf($results) {
if($results['type'] === 'application/pdf') {
$filename = $results[ 'file' ];
$filename_wo_extension = basename($filename);
$url = $results[ 'url' ];
$im = new Imagick();
$im->setResolution(300, 300);
$pages = $im->getNumberImages();
for($p = 0; $p < $pages; $p++){
// http://stackoverflow.com/questions/467793/how-do-i-convert-a-pdf-document-to-a-preview-image-in-php
// http://stackoverflow.com/questions/1143841/count-the-number-of-pages-in-a-pdf-in-only-php
$im->readImage($url.'['.p.']');
$im->setImageFormat('jpg');
$filename_neu = $filename_wo_extension .'_'. $p .'.jpg';
// https://codex.wordpress.org/Function_Reference/wp_insert_attachment
$upload_file = wp_upload_bits($filename_neu, null, $im);
if (!$upload_file['error']) {
$attachment = array(
'post_mime_type' => 'image/jpeg',
'post_title' => preg_replace('/\.[^.]+$/', '', $filename_neu),
'post_content' => '',
'post_status' => 'inherit'
);
$attachment_id = wp_insert_attachment($attachment, $upload_file['file']);
if (!is_wp_error($attachment_id)) {
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
$attachment_data = wp_generate_attachment_metadata($attachment_id, $upload_file['file']);
wp_update_attachment_metadata($attachment_id, $attachment_data);
}
}
}
}
}
add_action('wp_handle_upload', 'process_pdf');