私のプログラムは、いくつかの画像を含む(かなり複雑な)フォームをプリンタに出力する必要があります。私は現在、PDFプリンタ(PDF995)を選択した後、Delphi(2006)のPrinter.Canvas
を使ってこれを行っています。これは治療のように機能します。Delphiを使用して、部分的に透明なイメージをPDFキャンバスに印刷するにはどうすればよいですか?
しかし、私は今問題に遭遇しています:他の要素(罫線、背景など)の上に配置する必要がある部分的に透明な画像があり、そのテキストの部分が画像の部分。
Canvas
を通常のTBitmap
で正常に動作させるには、TransparentColor
プロパティを使用します。しかし、プリンタでこれを実行しようとすると、必ずしも正常に動作するとは限りません。これをPDFプリンタで試してみると、それはうまくいかない:背景が黒くなったり、(今のところ最良の結果が)白くなったり、その下のものが上書きされたりする。
I Word文書にアルファ透明度(別名半透明)でPNG画像を挿入し、その後、PDFプリンタ前記にそれを送信することによって、同じ結果を達成する試みました。半透明性は消えますが、ピクセル透過性は維持されます。少なくとも、どういうわけかは可能なはずです。
誰でも知っていますか?
面白いアイデアは、これがうまくいくかどうか聞いてみるといいですね。多くの "PDFプリンタ"の "スタック"は、App - > GDI - >プリントスプーラ - > PSドライバ - >リダイレクタ(例えばRedmon) - > PSからPDFコンバータ(通常はGhostscript)です。重要な部分は、PostScriptへのGDI呼び出しの適切な翻訳であるようです。この点であなたの提案は確かに結果を変えるかもしれません。 –
チップをありがとう、私はこれを動作させるようにしようとします。 – Martijn
それは動作します!最終結果は、画面、紙プリンタ、PDFプリンタ、およびPDF生成コンポーネントで動作するように見える 'StretchDrawClipTransparency(Destination:TCanvas; DestRect:TRect; Bitmap:TBitmap; TransparencyColor:TColor = clNone);' です。 、キャンバスのもの。 透明度(別名アルファ透明度)はありませんが、これで十分です。 – Martijn