2011-09-28 16 views
6

私はconvertバージョンのImageMagick 6.6.2-6 2011-03-16を使用しています。イメージからA4 pdfを生成するために使用したいと思います。Imagemagickを使用してPDFで.jpgイメージをセンタリングするには?

私は(Overlaying Images with ImageMagickの変形例として)次のことを実行している:

# generate a 100x100 JPG with just red color 
convert -size 100x100 xc:red red.jpg 

# generate PDF from JPG 
convert -page A4 xc:white red.jpg -gravity center -composite -format pdf out.pdf 

...でも、基本的には何も示していませんか?同じことが

  • 単に「convert -page A4 red.jpg out.pdf」は動作することをPNG画像...

    注用起こる - しかし、画像を中心にされていません。画像はPNG形式されている場合は、「convert -page A4 -gravity center red.png out.pdf」は確かに

罰金に動作します...しかし、私はJPEGストリームの内容を埋め込むことconvertを希望

  • -gravity centerを表示しないように画像の原因となります)直接、JPGをPNGに変換したくないのです。

    convertを使用して、JPGイメージをA4 PDFページに直接配置することは可能でしょうか?

    あらかじめお返事ありがとうございました。
    乾杯!

     

    EDIT2:キーズ@ジョンの答えは、上記の例のために動作します。画像がPDFサイズよりも小さい場合、例えば画像が大きい場合、例えば:

    $ convert -size 1228x1706 -background \#f44 -rotate 45 gradient:\#f00-\#fff red.jpg 
    $ identify red.jpg 
    red.jpg JPEG 2075x2075 2075x2075+0+0 8-bit DirectClass 120KB 0.000u 0:00.000 
    

    ...失敗する。しかし、それは "if you change -extent to 50x50, then play with -gravity, you'll see changes" - 質問以外はです。エクステントを変更するか、それともイメージのPDFを変更するのですか?

    まあ、それが判明 - それは、最終的なPDFの範囲である... convertがそれを見ているように、そのサイズを確認するには、ページをチェック:Magick::Geometryを - しかし、A4+43+43> "のようなもの「ポストスクリプトページサイズの仕様」に注意します"残念ながら、このコンテキストではconvertがクラッシュする可能性があります...しかし、少なくともサイズ(595x842)のそれぞれの数字はページからコピーできます。

    convert -page A4 -gravity center -resize 595x842 -extent 595x842 red.jpg out.pdf 
    

    を...そして実際に、-extent部分が本当に必要とされていません - -resize部分は、大きな画像のショーを持っている重要なものです。..

    をしかし、ここでの問題:そして最後に、これは動作しますインクルードされたイメージが再サンプリングされているようですが、スケールに合わせてページに収まるように表示したいのですが、元のJPGストリームをファイルに挿入するのが好きです。関連:

  • 答えて

    4

    私のために完全に、次の作品だから私は、質問が:)

    EDITまだ部分的に開いていると思います:

    あなたは、「ファイル」の順序を変更した場合
    convert -page A4 red.jpg -gravity center -format pdf out.pdf 
    

    は、それがあまりにも動作します:

    convert -page A4 red.jpg xc:white -gravity center -composite -format pdf out.pdf 
    

    私はred.jpgが中心ですが、白はそれの上に描かれていると思います。

    +0

    大変感謝しています。私は '-format pdf'で何かを試してみたが失敗したと誓っていたかもしれない。しかし私はyerの最初のコマンドラインを試しているし、それは素晴らしい動作します! :)おかげで再び - 歓声! – sdaau

    +0

    ようこそ。私はImageMagickオプションのウサギの穴を何度も覗き込んだ。 –

    +1

    これは私のケースでは5MBのJPEGを変換する大きな画像(バージョン6.9.2)では機能しません。空白のページが作成されます。 「重力中心」オプションがなければ機能しますが、もちろん中央にはありません。オープンな問題であるようです:https://www.imagemagick.org/discourse-server/viewtopic.php?t=22759 – mischka

    0

    まあ、これはImageMagickの外であるが、ここで確実にページ上の画像を配置するようだtikzパッケージ(How to define a figure size so that it consumes the rest of a page? #14514を使用)を使用して、ラテックス溶液で、そして完全にそれらを保存:

    % note: need to run pdflatex twice!! First time generates blank pages! 
    % convert -size 1228x1706 -background \#f44 -rotate 45 gradient:\#f00-\#fff red.jpg 
    % convert -size 595x1400 xc:red redlong.jpg 
    
    \documentclass[a4paper]{letter} 
    
    \usepackage{graphicx} 
    \usepackage[hmargin=0.5cm,vmargin=0.5cm]{geometry} % sets page margins 
    
    \usepackage{tikz} 
    \usetikzlibrary{calc} 
    
    \newcommand{\imagepage}[1]{ 
    \tikz[overlay,remember picture]\coordinate (image-start); \par 
    \vfill 
    \null\hfill 
    \begin{tikzpicture}[overlay,remember picture] 
        \path let \p0 = (0,0), \p1 = (image-start) in 
        node [inner sep=0pt,outer sep=0pt,anchor=center] at (current page.center) {% 
         \pgfmathsetmacro\imgheight{\y1-\y0}% 
         \includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{#1}% 
        }; 
    \end{tikzpicture}% 
    } 
    
    
    
    \begin{document} 
    
    
    % there must be a \n\n after {letter!} 
    \begin{letter} 
    
        \imagepage{red.jpg} 
    \end{letter} 
    
    
    \begin{letter} 
    
        \imagepage{redlong.jpg} 
    \end{letter} 
    
    % see also \resizebox{\textwidth}{!}{\includegraphics{red.jpg}} 
    \end{document} 
    

    注意を、letterドキュメントクラスを使用して、各イメージが別々のページに分割されるようにします。

    関連する問題