THotPDF.BeginIncrementalUpdate

THotPDF

 

Üst  Yöntemler  Sonraki

Var olan bir PDF'i yükler ve belgeyi yalnızca ekleme yapan artımlı güncelleme kipine geçirir.

 

Delphi sözdizimi:

procedure BeginIncrementalUpdate(const SourceFile: TFileName); overload;

procedure BeginIncrementalUpdate(const SourceFile: TFileName; const Password: AnsiString); overload;

 

C++ sözdizimi:

void __fastcall BeginIncrementalUpdate(System::Sysutils::TFileName SourceFile);

void __fastcall BeginIncrementalUpdate(System::Sysutils::TFileName SourceFile, const System::AnsiString Password);

 

Açıklama

Var olan bir PDF'in, özgün baytları yeniden yazılmadan genişletilmesi gerektiğinde BeginIncrementalUpdate çağırın. HotPDF etkin trailer'ı veya xref-stream sözlüğünü ayrıştırır, kalıcı ve değişiklik ID'lerini yakalar, kaynak dosyayı dosya destekli bir stream üzerinden yazma kilitli tutar ve eksiksiz bir kaynak kopya yerine yalnızca sınırlı bir kuyruk sondası tutar

 

Yüklenen belge API'leri üzerinden yapılan yeni dolaylı nesneler ve değişiklikler otomatik olarak izlenir. Kod, resmî mutation hook'larının dışındaki bir yoldan nesne değiştirdiğinde MarkDirty kullanın

 

Standard-şifreli bir kaynak için kullanıcı ya da sahip parolasını iki argümanlı aşırı yüklemeye geçirin. Genel anahtarla şifrelenmiş bir kaynak için PubSecKeyMaterial atayıp tek argümanlı aşırı yüklemeyi çağırın. HotPDF, kimliği doğrulanmış dosya anahtarını veya FEK'i yalnızca güncelleme ömrü boyunca tutar; özgün dize, stream, üst veri ve Identity crypt-filter ilkelerini korur ve eski nesne başına anahtarları hem nesne numarasından hem saklanan generation'dan türetir

Şifreleme sözlüğü kaynak revizyondan devralınır ve artımlı kip etkinyken eklenemez, değiştirilemez veya yeniden yapılandırılamaz. Desteklenmeyen heterojen açık crypt-filter yeniden yazımları, farklı bir ilke altında şifreli metin üretmek yerine çıktıdan önce başarısız olur

 

Bu iş akışı; sonradan bir imza alanı eklemek, üst veri eklemek veya daha önceki dijital imzaların kapsadığı bayt aralıklarını korurken imzalı bir belgeyi genişletmek için kullanışlıdır. Kaynakta çok sayıda revizyon bulunsa bile etkin trailer kullanılır

 

İkinci bir imza eklemek

Belge yüklendikten sonra geçerli bir sayfa kalmaz; bu yüzden imzalanabilir alan, sayfa indeksini argüman alan AddLoadedSignedSignatureField ile eklenir. Alan, güncelleme kaydedildikten sonra SignPDFWithPFX'in ya da dış imzalayıcı söz konusuysa PreparePDFForSigning ve InsertSignatureHex'in doldurduğu imza alanını rezerve eder. Yeni imza dosyanın tamamını kapsar ve önceki imzalar, baytlarına dokunulmadığı için geçerli kalır

PDF := THotPDF.Create(nil);
try
  PDF.BeginIncrementalUpdate('Signed.pdf');
  PDF.AddLoadedSignedSignatureField(0, 300, 120, 500, 160, 'Approver', 8192);
  PDF.SaveIncrementalUpdate('Prepared.pdf');
finally
  PDF.Free;
end;
THotPDF.SignPDFWithPFX('Prepared.pdf', 'SignedTwice.pdf', 'Signer.pfx', 'password');

 

Ayrıca bkz.: MarkDirty, SaveIncrementalUpdate, AddLoadedSignedSignatureField, GetIncrementalUpdateSourceInfo, AcroForm desteği, PDF filtre desteği