tiff2pdfカラー

tiff2pdfカラー

.tif一部のスキャンファイル(libtiffバージョン4.0.3)とJPEG圧縮を.pdf使用するように変換しました。tiff2pdfこれを見ると、evince色(ピンク)の背景が表示されます。

最初はスキャナが壊れていましたが、ファイルは.tif大丈夫だと思いましたが、.pdfJPEG圧縮を使用しなかった場合はファイルは問題ありませんでした(しかしファイルは非常に大きくなるでしょう)。

.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

tiff2pdfIMOは、ソースコードのテストスイートでテストしていない他のものを破る可能性はありません。

おすすめ記事