1

データ型がイメージの SQL サーバーに保存されている PDF がいくつかあります。PHP ページから Imagic を使用して、それらを 1 つのドキュメントにマージしたいと考えています。コードは次のとおりです。

$combined = new Imagick();

while( $document = mssql_fetch_assoc( $mssqlResult ){
    $image = 新しい Imagick();
    $image->readImageBlob( $document['Contents'] ) ;
    $combined->addImage( $image );
    $image->clear();
    $image->destroy();
}
$combined->setImageFormat("pdf");
$combined->writeImages( 'test.pdf', true );

これは機能し、test.pdf はサーバーに保存されますが、ブラウザーの URL ( http://www.test.com/test.phpなど) を出力しようとすると機能しません。コードは次のとおりです。

$combined = new Imagick();

while( $document = mssql_fetch_assoc( $mssqlResult ){
    $image = 新しい Imagick();
    $image->readImageBlob( $document['Contents'] ) ;
    $combined->addImage( $image );
    $image->clear();
    $image->destroy();
}

//$combined->getImageBlob();

//$combined->setImageFormat("pdf");

//$combined->writeImages( 'test.pdf', true );

header('Content-type: アプリケーション/pdf');

header('Content-Disposition: attachment; filename="test.pdf"');

エコー $combined;
4

2 に答える 2

1
$combined   =   new Imagick();

while( $document    =   mssql_fetch_assoc( $mssqlResult ){
    $image      =   new Imagick(); 
    $image->readImageBlob( $document['Contents'] ) ;
    $combined->addImage( $image );
    $image->clear();
    $image->destroy(); 
}

$combined->getImageBlob();

$combined->setImageFormat("pdf");

$combined->writeImages( 'test.pdf', true );

header('Content-type: application/pdf');

header('Content-Disposition: attachment; filename="test.pdf"');

echo file_get_contents('test.pdf');
于 2010-10-06T09:16:06.910 に答える
1

これは機能します:

結合 = 新しい Imagick();

while( $document = mssql_fetch_assoc( $mssqlResult ){
    $image = 新しい Imagick();
    $image->readImageBlob( $document['Contents'] ) ;
    $combined->addImage( $image );
    $image->clear();
    $image->destroy();
}

$combined->setImageFormat("pdf");

header('Content-type: アプリケーション/pdf');
header('Content-Disposition: attachment; filename="test.pdf"');
echo $combined->getImagesBlob();

キーワードはgetImagesBlobではなくであることに注意してくださいgetImageBlob

于 2010-10-06T10:53:59.667 に答える