0
私は、Cでコードを書いています。ここでは、PDFファイルの内容を別の場所にコピーして処理します。私がやったことです:Cを使用した不適切なPDFファイルのコピー
オープン私は開くことがMuPDFを使用していますバイナリ読み取りモードでファイル
if ((fp = fopen(argv[6],"rb")) == 0) {
fprintf(stderr, "ERROR: Can't open input file %s\n",argv[6]);
goto out;
}
その後、私は一時的な場所にPDFファイルの内容を保存
/* save the contents for the file to a temporary location */
tempfp = fopen(CUPS_IPTEMPFILE, "wb");
while ((n = fread(buf, 1, BUFSIZ, fp)) > 0) {
count = fwrite(buf, 1, BUFSIZ, tempfp);
}
fclose(tempfp);
ファイル; MuPDFが正しくファイルを表示することができるが、それは、端末に次のエラーを与える:
$ mupdf cupsiptempfile.pdf
error: cannot find startxref
warning: trying to repair broken xref
私は同じファイルを表示するには、Okularを使用している場合は、私はすべてのエラーに
$ okular cupsiptempfile.pdf
okular(12821)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(12821)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(12821)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(12821)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(12821)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
なぜを得ることはありませんここに違いがありますか?コピー部に何か問題がありますか?
追加情報:MuPDFを使用して元のPDFファイルを開くと、エラーは発生しません。
お気軽にお問い合わせください。
あなたはBUFSIZ文字を書きますが、あなたがBUFSIZ文字を読んでいない可能性がありますコピーする場合 - 変数nが読み取られた文字数ので、それはあなたが書く必要がありますどのように多くであるあなたを伝えるためにそこにあります。 –
@JerryJeremiahはい、あなたは正しいです。それが問題を解決しました。愚かな私、私はそれに気付かなかった。 – Pranjal
助けてくれてうれしいです。 –