.tif
一部のスキャンファイル(libtiffバージョン4.0.3)とJPEG圧縮を.pdf
使用するように変換しました。tiff2pdf
これを見ると、evince
色(ピンク)の背景が表示されます。
最初はスキャナが壊れていましたが、ファイルは.tif
大丈夫だと思いましたが、.pdf
JPEG圧縮を使用しなかった場合はファイルは問題ありませんでした(しかしファイルは非常に大きくなるでしょう)。
.pdf
コマンドラインツールを使用して色付きの圧縮JPEGを取得するには?
ベストアンサー1
持続する問題だと思います。2007年ごろ報告そして再び表示されます(または以前のバージョンのライブラリを使用していましたが、この問題は発生しませんでした)。
あなたができることは、出力ファイルを後処理することです(オプションがsed
あると仮定):-i
tiff2pdf -j input.tif -o out.pdf
sed -i 's|/DecodeParms << /ColorTransform 0 >>||' out.pdf
-o
何らかの理由でオプションを省略しtiff2pdf
て出力を直接パイプするとsed
(それを行うと取得できませんtiff2pdf -j input.tif > out.pdf
)、エラーメッセージが表示され、破損したPDFファイルが表示されます。
tiff 4.0.4betaソースコードにパッチを適用したい場合は、5160〜5163行tools/tiff2pdf.c
(このように表示されますColorTransform
)をコメントアウトできます。
/*
if(t2p->tiff_photometric != PHOTOMETRIC_YCBCR) {
written += t2pWriteFile(output, (tdata_t) "/DecodeParms ", 13);
written += t2pWriteFile(output, (tdata_t) "<< /ColorTransform 0 >>\n", 24);
}
*/
または、t2pseekproc
機能を次のように変更します。
static uint64
t2p_seekproc(thandle_t handle, uint64 offset, int whence)
{
T2P *t2p = (T2P*) handle;
int res;
if (t2p->outputdisable <= 0 && t2p->outputfile) {
res = fseek(t2p->outputfile, (long) offset, whence);
if (res == -1 && offset == 0 && whence == SEEK_END)
return 0;
return res;
}
return offset;
}
fseek
これにより、オフセット0の終わりで操作を実行すると失敗しなくなります(IMOでは、fseek
前にゼロ以外の値を持つ他のタスクがあり、失敗した場合にのみ意味があります)。
これら2つの変更を適用すると、すべてのテストがまだ通過します(ただし、明らかにすべての機能をカバーするわけではありません)。 2番目の変更では、次のことができます。
tiff2pdf -j | input.tif | sed -i 's|/DecodeParms << /ColorTransform 0 >>||' out.pdf
tiff2pdf
IMOは、ソースコードのテストスイートでテストしていない他のものを破る可能性はありません。