本文整理匯總了C#中iTextSharp.text.pdf.PdfReader.ShuffleSubsetNames方法的典型用法代碼示例。如果您正苦於以下問題:C# PdfReader.ShuffleSubsetNames方法的具體用法?C# PdfReader.ShuffleSubsetNames怎麽用?C# PdfReader.ShuffleSubsetNames使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類iTextSharp.text.pdf.PdfReader
的用法示例。
在下文中一共展示了PdfReader.ShuffleSubsetNames方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: AddDocument
virtual public void AddDocument(PdfReader reader) {
if (!document.IsOpen()) {
throw new DocumentException(MessageLocalization.GetComposedMessage("the.document.is.not.open.yet.you.can.only.add.meta.information"));
}
if (indirectMap.ContainsKey(reader)) {
throw new ArgumentException(MessageLocalization.GetComposedMessage("document.1.has.already.been.added", reader.ToString()));
}
if (!reader.IsOpenedWithFullPermissions)
throw new BadPasswordException(MessageLocalization.GetComposedMessage("pdfreader.not.opened.with.owner.password"));
if (mergeFields) {
reader.ConsolidateNamedDestinations();
reader.ShuffleSubsetNames();
for (int i = 1; i <= reader.NumberOfPages; i++) {
PdfDictionary page = reader.GetPageNRelease(i);
if (page != null && page.Contains(PdfName.ANNOTS)) {
PdfArray annots = page.GetAsArray(PdfName.ANNOTS);
if (annots != null) {
for (int j = 0; j < annots.Size; j++) {
PdfDictionary annot = annots.GetAsDict(j);
if (annot != null)
annot.Put(annotId, new PdfNumber(++annotIdCnt));
}
}
}
}
AcroFields acro = reader.AcroFields;
// when a document with NeedAppearances is encountered, the flag is set
// in the resulting document.
bool needapp = !acro.GenerateAppearances;
if (needapp)
needAppearances = true;
fields.Add(reader.AcroFields);
UpdateCalculationOrder(reader);
}
bool tagged = this.tagged && PdfStructTreeController.CheckTagged(reader);
mergeFieldsInternalCall = true;
for (int i = 1; i <= reader.NumberOfPages; i++) {
AddPage(GetImportedPage(reader, i, tagged));
}
mergeFieldsInternalCall = false;
}
示例2: AddDocument
public void AddDocument(PdfReader reader) {
if (indirectMap.ContainsKey(reader)) {
throw new ArgumentException(MessageLocalization.GetComposedMessage("document.1.has.already.been.added", reader.ToString()));
}
if (!reader.IsOpenedWithFullPermissions)
throw new BadPasswordException(MessageLocalization.GetComposedMessage("pdfreader.not.opened.with.owner.password"));
if (mergeFields) {
reader.ConsolidateNamedDestinations();
reader.ShuffleSubsetNames();
for (int i = 1; i <= reader.NumberOfPages; i++) {
PdfDictionary page = reader.GetPageNRelease(i);
if (page != null && page.Contains(PdfName.ANNOTS)) {
PdfArray annots = page.GetAsArray(PdfName.ANNOTS);
if (annots != null) {
for (int j = 0; j < annots.Size; j++) {
PdfDictionary annot = annots.GetAsDict(j);
if (annot != null)
annot.Put(annotId, new PdfNumber(++annotIdCnt));
}
}
}
}
fields.Add(reader.AcroFields);
UpdateCalculationOrder(reader);
}
bool tagged = PdfStructTreeController.CheckTagged(reader);
mergeFieldsInternalCall = true;
for (int i = 1; i <= reader.NumberOfPages; i++) {
AddPage(GetImportedPage(reader, i, tagged && this.tagged));
}
mergeFieldsInternalCall = false;
}
示例3: CopyDocumentFields
/**
* Copy document fields to a destination document.
* @param reader a document where fields are copied from.
* @throws DocumentException
* @throws IOException
*/
public virtual void CopyDocumentFields(PdfReader reader) {
if (!document.IsOpen()) {
throw new DocumentException(
MessageLocalization.GetComposedMessage("the.document.is.not.open.yet.you.can.only.add.meta.information"));
}
if (indirectMap.ContainsKey(reader)) {
throw new ArgumentException(MessageLocalization.GetComposedMessage("document.1.has.already.been.added",
reader.ToString()));
}
if (!reader.IsOpenedWithFullPermissions)
throw new BadPasswordException(MessageLocalization.GetComposedMessage("pdfreader.not.opened.with.owner.password"));
if (!mergeFields)
throw new ArgumentException(
MessageLocalization.GetComposedMessage(
"1.method.can.be.only.used.in.mergeFields.mode.please.use.addDocument", "copyDocumentFields"));
indirects = new Dictionary<RefKey, IndirectReferences>();
indirectMap[reader] = indirects;
reader.ConsolidateNamedDestinations();
reader.ShuffleSubsetNames();
if (tagged && PdfStructTreeController.CheckTagged(reader)) {
structTreeRootReference = (PRIndirectReference) reader.Catalog.Get(PdfName.STRUCTTREEROOT);
if (structTreeController != null) {
if (reader != structTreeController.reader)
structTreeController.SetReader(reader);
} else {
structTreeController = new PdfStructTreeController(reader, this);
}
}
IList<PdfObject> annotationsToBeCopied = new List<PdfObject>();
for (int i = 1; i <= reader.NumberOfPages; i++) {
PdfDictionary page = reader.GetPageNRelease(i);
if (page != null && page.Contains(PdfName.ANNOTS)) {
PdfArray annots = page.GetAsArray(PdfName.ANNOTS);
if (annots != null && annots.Size > 0) {
if (importedPages.Count < i)
throw new DocumentException(
MessageLocalization.GetComposedMessage("there.are.not.enough.imported.pages.for.copied.fields"));
indirectMap[reader][new RefKey(reader.pageRefs.GetPageOrigRef(i))] = new IndirectReferences(pageReferences[i - 1]);
for (int j = 0; j < annots.Size; j++) {
PdfDictionary annot = annots.GetAsDict(j);
if (annot != null) {
annot.Put(annotId, new PdfNumber(++annotIdCnt));
annotationsToBeCopied.Add(annots[j]);
}
}
}
}
}
foreach (PdfObject annot in annotationsToBeCopied) {
CopyObject(annot);
}
if (tagged && structTreeController != null)
structTreeController.AttachStructTreeRootKids(null);
AcroFields acro = reader.AcroFields;
bool needapp = !acro.GenerateAppearances;
if (needapp)
needAppearances = true;
fields.Add(acro);
UpdateCalculationOrder(reader);
structTreeRootReference = null;
}