2017-11-20 5 views
0

PDFClownは、検索と置換ページpdfclownを使用して

は、私は既存のPDFドキュメント内のページを見つけ、別のPDFドキュメントからページを置き換えるためのベストプラクティスを思っていました。

私は両方のページのブックマークとページラベルを持っています。

+0

ソリューションに興味がある場合は、入力ファイルの例を提供してください。 – mkl

+0

@mkl、どこでファイルを送信したいですか? – Ryan

+0

通常、Googleドライブ、Dropboxなどの共有ファイル共有を使用して共有し、ここにURLを投稿します。 – mkl

答えて

0

ページPageManager CLI例から導出することができる交換するための簡単な例:

string inputA = @"A.pdf"; 
string inputB = @"B.pdf"; 
string output = @"A-withPage1FromB-simple.pdf"; 

org.pdfclown.files.File fileA = new org.pdfclown.files.File(inputA); 
org.pdfclown.files.File fileB = new org.pdfclown.files.File(inputB); 

// replace page 0 in fileA by page 0 from fileB 
Document mainDocument = fileA.Document; 
Bookmarks bookmarks = mainDocument.Bookmarks; 
PageManager manager = new PageManager(mainDocument); 
manager.Remove(0, 1); 
manager.Add(0, fileB.Document.Pages.GetSlice(0, 1)); 

fileA.Save(output, SerializationModeEnum.Standard); 

これは実際B.pdfの最初のページによってA.pdfの最初のページを置換し、その結果を保存-withPage1FromB-simple.pdf。

残念ながら、PageManagerはブックマークを更新しません。したがって、上のコードの結果では、最初の最初のページを指し示していたブックマークが残っています。このページは存在しないので、もはや今はもうどこにも向いていません。そして、fileBの最初のページを指すブックマークは完全に無視されます。

他のドキュメントレベル、ページ関連プロパティも転送されません。ページラベル。ただし、ページラベルの場合、最初のページの元のラベルは、置換後の最初のページに関連付けられたままです。これは、異なる種類の参照(オブジェクトではなくページ番号による)によるものです。

関連する問題