WordPress 플러그인으로 pdf에서 jpg 생성

obs

업로드 된 pdf 파일의 모든 페이지에서 jpg를 만드는 플러그인을 작업 중입니다.

나는 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');
obs

이를 달성하기위한 코드는 다음과 같습니다. pdf 파일을 게시물에 업로드해야합니다 $post_id. 그렇지 않으면 . 이제 유일한 것은 저장을 클릭하면 사용자 정의 필드 (갤러리)를 덮어 쓴다는 것입니다. pdf 업로드 후 게시물이 저장되지 않으면 갤러리에 이미지가 있습니다.

function process_pdf( $file ) {

    if( $file['type'] === 'application/pdf' ) {

        // Get the parent post ID, if there is one
        if( isset($_REQUEST['post_id']) ) {
            $post_id = $_REQUEST['post_id'];

            $filename = $file[ 'name' ];
            $filename_wo_extension = basename( $filename, ".pdf" );

            $im = new Imagick();
            $im->setResolution(300, 300);
            $im->readimage( $file[ 'tmp_name' ] ); 
            $pages = $im->getNumberImages();

            $attachments_array = array();

            // iterate over pages of the pdf file
            for($p = 1; $p <= $pages; $p++){
                $im->setIteratorIndex( $p - 1 );
                $im->setImageFormat('jpeg');

                $filename_neu = $filename_wo_extension .'_'. $p .'.jpg';

                // upload new image to wordpress
                // 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 );
                        $attachments_array[] = $attachment_id;
                    }
                }
            }

            // add new images to a gallery (advanced custom fields plugin)
            // http://www.advancedcustomfields.com/resources/update_field/
            update_field( 'field_55b0a473da995', $attachments_array, $post_id );

          $im->destroy();
       }
    }

    return $file;

}

add_filter('wp_handle_upload_prefilter', 'process_pdf' );

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Docker Wordpress 플러그인 지속성 또는 로컬 플러그인에 매핑

분류에서Dev

게스트가 프로그래밍 방식으로 생성 한 Woocommerce (Wordpress 플러그인) 제품에 액세스 할 수 없음

분류에서Dev

HTML 갤러리에서 Wordpress 플러그인으로

분류에서Dev

WordPress 플러그인에서 생성자로 클래스를 재정의하는 방법은 무엇입니까?

분류에서Dev

PDF에서 JPG로; 디스크에 저장하거나 즉시 생성해야합니까?

분류에서Dev

jQuery MultiFile 플러그인에서 동적으로 입력 파일 요소 생성

분류에서Dev

Eclipse 플러그인-템플릿에서 프로그래밍 방식으로 파일 생성

분류에서Dev

MemoryStream (pdf)에서 Ghostscript로, MemoryStream (jpg)으로

분류에서Dev

w3c 유효성 검사기에서 WordPress의 슬라이더 회전 플러그인 속성 사이에 공백이 없음으로 오류가 발생합니다.

분류에서Dev

Grails UI 성능 플러그인에서 리소스 플러그인으로 마이그레이션

분류에서Dev

WordPress의 플러그인에서 템플릿로드

분류에서Dev

Wordpress 플러그인에 대해 circleci를 구성하는 방법

분류에서Dev

Wordpress 플러그인에 재 작성 규칙 추가

분류에서Dev

Jasper 보고서 플러그인은 Grails 2.4.2에서 PDF를 생성합니다.

분류에서Dev

PDF에서 단일, 연속 JPG로

분류에서Dev

워드 프레스에서 플러그인으로 생성 된 관리자 메뉴를 숨기는 방법

분류에서Dev

Grails 2.3.11에서 quartz 플러그인 용으로 생성되지 않는 테이블

분류에서Dev

Gradle 플러그인에서 작업을 동적으로 생성하는 방법은 무엇입니까?

분류에서Dev

내 wordpress 플러그인에서 pdf를 생성하기 위해 TCPDF를 사용하고 있지만 실행시 이미 보낸 라이브러리 헤더에 오류가 있습니다.

분류에서Dev

WordPress 플러그인에서 404 페이지로 리디렉션

분류에서Dev

wordpress 플러그인에서 csv로 wordpress 테이블 다운로드

분류에서Dev

wordpress 플러그인에서 csv로 wordpress 테이블 다운로드

분류에서Dev

플러그인으로 외부 웹 사이트에서 Wordpress 프로세스 양식 요청

분류에서Dev

WordPress 플러그인 편집기에서 Table을 사용할 때 자동 생성 </br> 태그를 피하는 방법

분류에서Dev

메뉴 빌더에 가상 페이지 (플러그인으로 생성됨)를 추가하는 방법

분류에서Dev

품질 손실없이 pdf에서 jpg로; gscan2pdf

분류에서Dev

(WordPress) 고급 사용자 정의 필드 플러그인을 사용하여 슬라이더에서 동적 버튼 생성 시도

분류에서Dev

maven generate-sources-플러그인에서 생성 된 소스 경로 식별

분류에서Dev

다른 컴퓨터에서 새로 생성 된 플러그인 사용

Related 관련 기사

  1. 1

    Docker Wordpress 플러그인 지속성 또는 로컬 플러그인에 매핑

  2. 2

    게스트가 프로그래밍 방식으로 생성 한 Woocommerce (Wordpress 플러그인) 제품에 액세스 할 수 없음

  3. 3

    HTML 갤러리에서 Wordpress 플러그인으로

  4. 4

    WordPress 플러그인에서 생성자로 클래스를 재정의하는 방법은 무엇입니까?

  5. 5

    PDF에서 JPG로; 디스크에 저장하거나 즉시 생성해야합니까?

  6. 6

    jQuery MultiFile 플러그인에서 동적으로 입력 파일 요소 생성

  7. 7

    Eclipse 플러그인-템플릿에서 프로그래밍 방식으로 파일 생성

  8. 8

    MemoryStream (pdf)에서 Ghostscript로, MemoryStream (jpg)으로

  9. 9

    w3c 유효성 검사기에서 WordPress의 슬라이더 회전 플러그인 속성 사이에 공백이 없음으로 오류가 발생합니다.

  10. 10

    Grails UI 성능 플러그인에서 리소스 플러그인으로 마이그레이션

  11. 11

    WordPress의 플러그인에서 템플릿로드

  12. 12

    Wordpress 플러그인에 대해 circleci를 구성하는 방법

  13. 13

    Wordpress 플러그인에 재 작성 규칙 추가

  14. 14

    Jasper 보고서 플러그인은 Grails 2.4.2에서 PDF를 생성합니다.

  15. 15

    PDF에서 단일, 연속 JPG로

  16. 16

    워드 프레스에서 플러그인으로 생성 된 관리자 메뉴를 숨기는 방법

  17. 17

    Grails 2.3.11에서 quartz 플러그인 용으로 생성되지 않는 테이블

  18. 18

    Gradle 플러그인에서 작업을 동적으로 생성하는 방법은 무엇입니까?

  19. 19

    내 wordpress 플러그인에서 pdf를 생성하기 위해 TCPDF를 사용하고 있지만 실행시 이미 보낸 라이브러리 헤더에 오류가 있습니다.

  20. 20

    WordPress 플러그인에서 404 페이지로 리디렉션

  21. 21

    wordpress 플러그인에서 csv로 wordpress 테이블 다운로드

  22. 22

    wordpress 플러그인에서 csv로 wordpress 테이블 다운로드

  23. 23

    플러그인으로 외부 웹 사이트에서 Wordpress 프로세스 양식 요청

  24. 24

    WordPress 플러그인 편집기에서 Table을 사용할 때 자동 생성 </br> 태그를 피하는 방법

  25. 25

    메뉴 빌더에 가상 페이지 (플러그인으로 생성됨)를 추가하는 방법

  26. 26

    품질 손실없이 pdf에서 jpg로; gscan2pdf

  27. 27

    (WordPress) 고급 사용자 정의 필드 플러그인을 사용하여 슬라이더에서 동적 버튼 생성 시도

  28. 28

    maven generate-sources-플러그인에서 생성 된 소스 경로 식별

  29. 29

    다른 컴퓨터에서 새로 생성 된 플러그인 사용

뜨겁다태그

보관