mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-04-10 00:21:27 +02:00
Bugfixing of unite tool
This commit is contained in:
parent
5d5973772a
commit
d17715b17e
@ -757,6 +757,47 @@ void PDFDocumentBuilder::setObject(PDFObjectReference reference, PDFObject objec
|
|||||||
m_storage.setObject(reference, qMove(object));
|
m_storage.setObject(reference, qMove(object));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PDFDocumentBuilder::createDocumentParts(const std::vector<size_t>& parts)
|
||||||
|
{
|
||||||
|
PDFObjectReference root = createDocumentPartRoot();
|
||||||
|
std::vector<PDFObjectReference> pages = getPages();
|
||||||
|
|
||||||
|
PDFObjectFactory objectFactory;
|
||||||
|
objectFactory.beginDictionary();
|
||||||
|
objectFactory.beginDictionaryItem("DParts");
|
||||||
|
objectFactory.beginArray();
|
||||||
|
|
||||||
|
size_t start = 0;
|
||||||
|
for (std::size_t count : parts)
|
||||||
|
{
|
||||||
|
if (count == 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto itStart = std::next(pages.cbegin(), start);
|
||||||
|
auto itEnd = std::next(itStart, count);
|
||||||
|
|
||||||
|
PDFObjectReference item = createDocumentPartItem(*itStart, *std::prev(itEnd), root);
|
||||||
|
for (auto it = itStart; it != itEnd; ++it)
|
||||||
|
{
|
||||||
|
setPageDocumentPart(*it, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
objectFactory.beginArray();
|
||||||
|
objectFactory << item;
|
||||||
|
objectFactory.endArray();
|
||||||
|
|
||||||
|
start += count;
|
||||||
|
}
|
||||||
|
|
||||||
|
objectFactory.endArray();
|
||||||
|
objectFactory.endDictionaryItem();
|
||||||
|
objectFactory.endDictionary();
|
||||||
|
|
||||||
|
mergeTo(root, objectFactory.takeObject());
|
||||||
|
}
|
||||||
|
|
||||||
void PDFDocumentBuilder::appendTo(PDFObjectReference reference, PDFObject object)
|
void PDFDocumentBuilder::appendTo(PDFObjectReference reference, PDFObject object)
|
||||||
{
|
{
|
||||||
m_storage.setObject(reference, PDFObjectManipulator::merge(m_storage.getObject(reference), qMove(object), PDFObjectManipulator::ConcatenateArrays));
|
m_storage.setObject(reference, PDFObjectManipulator::merge(m_storage.getObject(reference), qMove(object), PDFObjectManipulator::ConcatenateArrays));
|
||||||
@ -2850,6 +2891,68 @@ PDFObjectReference PDFDocumentBuilder::createCatalogPageTreeRoot()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PDFObjectReference PDFDocumentBuilder::createDocumentPartItem(PDFObjectReference startPage,
|
||||||
|
PDFObjectReference endPage,
|
||||||
|
PDFObjectReference parent)
|
||||||
|
{
|
||||||
|
PDFObjectFactory objectBuilder;
|
||||||
|
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("Type");
|
||||||
|
objectBuilder << WrapName("DPart");
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.beginDictionaryItem("Parent");
|
||||||
|
objectBuilder << parent;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.beginDictionaryItem("Start");
|
||||||
|
objectBuilder << startPage;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.beginDictionaryItem("End");
|
||||||
|
objectBuilder << endPage;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObjectReference documentPart = addObject(objectBuilder.takeObject());
|
||||||
|
return documentPart;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PDFObjectReference PDFDocumentBuilder::createDocumentPartRoot()
|
||||||
|
{
|
||||||
|
PDFObjectFactory objectBuilder;
|
||||||
|
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("Type");
|
||||||
|
objectBuilder << WrapName("DPart");
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObjectReference rootNodeReference = addObject(objectBuilder.takeObject());
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("Type");
|
||||||
|
objectBuilder << WrapName("DPartRoot");
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.beginDictionaryItem("DPartRootNode");
|
||||||
|
objectBuilder << rootNodeReference;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObjectReference documentPartReference = addObject(objectBuilder.takeObject());
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("Parent");
|
||||||
|
objectBuilder << documentPartReference;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObject updatedRootNode = objectBuilder.takeObject();
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("DPartRoot");
|
||||||
|
objectBuilder << documentPartReference;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObject updatedCatalog = objectBuilder.takeObject();
|
||||||
|
mergeTo(rootNodeReference, updatedRootNode);
|
||||||
|
mergeTo(getCatalogReference(), updatedCatalog);
|
||||||
|
return rootNodeReference;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PDFObject PDFDocumentBuilder::createTrailerDictionary(PDFObjectReference catalog)
|
PDFObject PDFDocumentBuilder::createTrailerDictionary(PDFObjectReference catalog)
|
||||||
{
|
{
|
||||||
PDFObjectFactory objectBuilder;
|
PDFObjectFactory objectBuilder;
|
||||||
@ -3123,6 +3226,34 @@ void PDFDocumentBuilder::setAnnotationTitle(PDFObjectReference annotation,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PDFDocumentBuilder::setCatalogAcroForm(PDFObjectReference acroForm)
|
||||||
|
{
|
||||||
|
PDFObjectFactory objectBuilder;
|
||||||
|
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("AcroForm");
|
||||||
|
objectBuilder << acroForm;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObject updatedCatalog = objectBuilder.takeObject();
|
||||||
|
mergeTo(getCatalogReference(), updatedCatalog);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PDFDocumentBuilder::setCatalogOptionalContentProperties(PDFObjectReference ocProperties)
|
||||||
|
{
|
||||||
|
PDFObjectFactory objectBuilder;
|
||||||
|
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("OCProperties");
|
||||||
|
objectBuilder << ocProperties;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObject updatedCatalog = objectBuilder.takeObject();
|
||||||
|
mergeTo(getCatalogReference(), updatedCatalog);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PDFDocumentBuilder::setDocumentAuthor(QString author)
|
void PDFDocumentBuilder::setDocumentAuthor(QString author)
|
||||||
{
|
{
|
||||||
PDFObjectFactory objectBuilder;
|
PDFObjectFactory objectBuilder;
|
||||||
@ -3288,6 +3419,21 @@ void PDFDocumentBuilder::setLanguage(QString language)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PDFDocumentBuilder::setPageDocumentPart(PDFObjectReference page,
|
||||||
|
PDFObjectReference documentPart)
|
||||||
|
{
|
||||||
|
PDFObjectFactory objectBuilder;
|
||||||
|
|
||||||
|
objectBuilder.beginDictionary();
|
||||||
|
objectBuilder.beginDictionaryItem("DPart");
|
||||||
|
objectBuilder << documentPart;
|
||||||
|
objectBuilder.endDictionaryItem();
|
||||||
|
objectBuilder.endDictionary();
|
||||||
|
PDFObject updatedPage = objectBuilder.takeObject();
|
||||||
|
mergeTo(page, updatedPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PDFDocumentBuilder::updateTrailerDictionary(PDFInteger objectCount)
|
void PDFDocumentBuilder::updateTrailerDictionary(PDFInteger objectCount)
|
||||||
{
|
{
|
||||||
PDFObjectFactory objectBuilder;
|
PDFObjectFactory objectBuilder;
|
||||||
@ -3312,20 +3458,6 @@ void PDFDocumentBuilder::updateTrailerDictionary(PDFInteger objectCount)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PDFDocumentBuilder::setCatalogOptionalContentProperties(PDFObjectReference ocProperties)
|
|
||||||
{
|
|
||||||
PDFObjectFactory objectBuilder;
|
|
||||||
|
|
||||||
objectBuilder.beginDictionary();
|
|
||||||
objectBuilder.beginDictionaryItem("OCProperties");
|
|
||||||
objectBuilder << ocProperties;
|
|
||||||
objectBuilder.endDictionaryItem();
|
|
||||||
objectBuilder.endDictionary();
|
|
||||||
PDFObject updatedCatalog = objectBuilder.takeObject();
|
|
||||||
mergeTo(getCatalogReference(), updatedCatalog);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* END GENERATED CODE */
|
/* END GENERATED CODE */
|
||||||
|
|
||||||
} // namespace pdf
|
} // namespace pdf
|
||||||
|
@ -348,6 +348,12 @@ public:
|
|||||||
/// \param object Object to be set
|
/// \param object Object to be set
|
||||||
void setObject(PDFObjectReference reference, PDFObject object);
|
void setObject(PDFObjectReference reference, PDFObject object);
|
||||||
|
|
||||||
|
/// Creates document parts from given pages. Pages must be flattened
|
||||||
|
/// by function \p flattenPageTree. \sa flattenPageTree. Each document
|
||||||
|
/// part has certain page size, sum of \p parts must equal to page count.
|
||||||
|
/// \param parts Parts (page count of each document part)
|
||||||
|
void createDocumentParts(const std::vector<size_t>& parts);
|
||||||
|
|
||||||
/* START GENERATED CODE */
|
/* START GENERATED CODE */
|
||||||
|
|
||||||
/// Appends a new page after last page.
|
/// Appends a new page after last page.
|
||||||
@ -863,6 +869,19 @@ public:
|
|||||||
PDFObjectReference createCatalogPageTreeRoot();
|
PDFObjectReference createCatalogPageTreeRoot();
|
||||||
|
|
||||||
|
|
||||||
|
/// Creates document part item (for certain range of pages).
|
||||||
|
/// \param startPage First page of page range.
|
||||||
|
/// \param endPage Last page of page range.
|
||||||
|
/// \param parent Parent node (must be a reference to parent node).
|
||||||
|
PDFObjectReference createDocumentPartItem(PDFObjectReference startPage,
|
||||||
|
PDFObjectReference endPage,
|
||||||
|
PDFObjectReference parent);
|
||||||
|
|
||||||
|
|
||||||
|
/// Creates document part root node (and setups catalog object).
|
||||||
|
PDFObjectReference createDocumentPartRoot();
|
||||||
|
|
||||||
|
|
||||||
/// This function is used to create a new trailer dictionary, when blank document is created. Do not
|
/// This function is used to create a new trailer dictionary, when blank document is created. Do not
|
||||||
/// call this function manually.
|
/// call this function manually.
|
||||||
/// \param catalog Reference to document catalog
|
/// \param catalog Reference to document catalog
|
||||||
@ -970,6 +989,16 @@ public:
|
|||||||
QString title);
|
QString title);
|
||||||
|
|
||||||
|
|
||||||
|
/// Set AcroForm to catalog.
|
||||||
|
/// \param acroForm Reference to AcroForm object.
|
||||||
|
void setCatalogAcroForm(PDFObjectReference acroForm);
|
||||||
|
|
||||||
|
|
||||||
|
/// Set optional content properties to catalog.
|
||||||
|
/// \param ocProperties Reference to catalog optional content properties.
|
||||||
|
void setCatalogOptionalContentProperties(PDFObjectReference ocProperties);
|
||||||
|
|
||||||
|
|
||||||
/// Set document author.
|
/// Set document author.
|
||||||
/// \param author Author
|
/// \param author Author
|
||||||
void setDocumentAuthor(QString author);
|
void setDocumentAuthor(QString author);
|
||||||
@ -1040,17 +1069,19 @@ public:
|
|||||||
void setLanguage(QString language);
|
void setLanguage(QString language);
|
||||||
|
|
||||||
|
|
||||||
|
/// Sets document part to page.
|
||||||
|
/// \param page Page
|
||||||
|
/// \param documentPart Document part
|
||||||
|
void setPageDocumentPart(PDFObjectReference page,
|
||||||
|
PDFObjectReference documentPart);
|
||||||
|
|
||||||
|
|
||||||
/// This function is used to update trailer dictionary. Must be called each time the final document is
|
/// This function is used to update trailer dictionary. Must be called each time the final document is
|
||||||
/// being built.
|
/// being built.
|
||||||
/// \param objectCount Number of objects (including empty ones)
|
/// \param objectCount Number of objects (including empty ones)
|
||||||
void updateTrailerDictionary(PDFInteger objectCount);
|
void updateTrailerDictionary(PDFInteger objectCount);
|
||||||
|
|
||||||
|
|
||||||
/// Set optional content properties to catalog.
|
|
||||||
/// \param ocProperties Reference to catalog optional content properties.
|
|
||||||
void setCatalogOptionalContentProperties(PDFObjectReference ocProperties);
|
|
||||||
|
|
||||||
|
|
||||||
/* END GENERATED CODE */
|
/* END GENERATED CODE */
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -70,7 +70,10 @@ int PDFToolUnite::execute(const PDFToolOptions& options)
|
|||||||
pdf::PDFDocumentBuilder documentBuilder;
|
pdf::PDFDocumentBuilder documentBuilder;
|
||||||
documentBuilder.createDocument();
|
documentBuilder.createDocument();
|
||||||
|
|
||||||
|
std::vector<size_t> documentPartPageCounts;
|
||||||
|
|
||||||
pdf::PDFObjectReference ocPropertiesMerged = documentBuilder.addObject(pdf::PDFObject());
|
pdf::PDFObjectReference ocPropertiesMerged = documentBuilder.addObject(pdf::PDFObject());
|
||||||
|
pdf::PDFObjectReference formMerged = documentBuilder.addObject(pdf::PDFObject());
|
||||||
|
|
||||||
std::vector<pdf::PDFObjectReference> pages;
|
std::vector<pdf::PDFObjectReference> pages;
|
||||||
for (const QString& fileName : files)
|
for (const QString& fileName : files)
|
||||||
@ -154,7 +157,10 @@ int PDFToolUnite::execute(const PDFToolOptions& options)
|
|||||||
acroFormReference = references.back();
|
acroFormReference = references.back();
|
||||||
references.pop_back();
|
references.pop_back();
|
||||||
|
|
||||||
|
documentPartPageCounts.push_back(references.size());
|
||||||
|
|
||||||
documentBuilder.appendTo(ocPropertiesMerged, documentBuilder.getObjectByReference(ocPropertiesReference));
|
documentBuilder.appendTo(ocPropertiesMerged, documentBuilder.getObjectByReference(ocPropertiesReference));
|
||||||
|
documentBuilder.appendTo(formMerged, documentBuilder.getObjectByReference(acroFormReference));
|
||||||
pages.insert(pages.end(), references.cbegin(), references.cend());
|
pages.insert(pages.end(), references.cbegin(), references.cend());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,6 +170,14 @@ int PDFToolUnite::execute(const PDFToolOptions& options)
|
|||||||
documentBuilder.setCatalogOptionalContentProperties(ocPropertiesMerged);
|
documentBuilder.setCatalogOptionalContentProperties(ocPropertiesMerged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!documentBuilder.getObjectByReference(formMerged).isNull())
|
||||||
|
{
|
||||||
|
documentBuilder.setCatalogAcroForm(formMerged);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Correct page tree (invalid parents are present)
|
||||||
|
documentBuilder.flattenPageTree();
|
||||||
|
documentBuilder.createDocumentParts(documentPartPageCounts);
|
||||||
pdf::PDFDocument mergedDocument = documentBuilder.build();
|
pdf::PDFDocument mergedDocument = documentBuilder.build();
|
||||||
|
|
||||||
// Optimize document - remove unused objects and shrink object storage
|
// Optimize document - remove unused objects and shrink object storage
|
||||||
@ -182,6 +196,11 @@ int PDFToolUnite::execute(const PDFToolOptions& options)
|
|||||||
{
|
{
|
||||||
finalBuilder.setObject(ocPropertiesReference, pdf::PDFObjectManipulator::removeDuplicitReferencesInArrays(finalBuilder.getObjectByReference(ocPropertiesReference)));
|
finalBuilder.setObject(ocPropertiesReference, pdf::PDFObjectManipulator::removeDuplicitReferencesInArrays(finalBuilder.getObjectByReference(ocPropertiesReference)));
|
||||||
}
|
}
|
||||||
|
pdf::PDFObjectReference acroFormReference = loader.readReferenceFromDictionary(dictionary, "AcroForm");
|
||||||
|
if (acroFormReference.isValid())
|
||||||
|
{
|
||||||
|
finalBuilder.setObject(acroFormReference, pdf::PDFObjectManipulator::removeDuplicitReferencesInArrays(finalBuilder.getObjectByReference(acroFormReference)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mergedDocument = finalBuilder.build();
|
mergedDocument = finalBuilder.build();
|
||||||
|
|
||||||
|
@ -5654,6 +5654,220 @@ return annotationObject;</property>
|
|||||||
<property name="functionDescription">Creates page tree root for the catalog. This function is only called when new document is being created. Do not call this function manually.</property>
|
<property name="functionDescription">Creates page tree root for the catalog. This function is only called when new document is being created. Do not call this function manually.</property>
|
||||||
<property name="returnType">_PDFObjectReference</property>
|
<property name="returnType">_PDFObjectReference</property>
|
||||||
</QObject>
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedFunction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">startPage</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">First page of page range.</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">endPage</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">Last page of page range.</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">parent</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">Parent node (must be a reference to parent node).</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">Parameters</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">Type</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">WrapName("DPart")</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">Parent</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">parent</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">Start</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">startPage</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">End</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">endPage</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">documentPart</property>
|
||||||
|
<property name="variableType">_PDFObjectReference</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="actionType">Code</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code">return documentPart;</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="functionType">Structure</property>
|
||||||
|
<property name="functionName">createDocumentPartItem</property>
|
||||||
|
<property name="functionDescription">Creates document part item (for certain range of pages).</property>
|
||||||
|
<property name="returnType">_PDFObjectReference</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedFunction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">Type</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">WrapName("DPart")</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">rootNodeReference</property>
|
||||||
|
<property name="variableType">_PDFObjectReference</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">Type</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">WrapName("DPartRoot")</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">DPartRootNode</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">rootNodeReference</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">documentPartReference</property>
|
||||||
|
<property name="variableType">_PDFObjectReference</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">Parent</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">documentPartReference</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">updatedRootNode</property>
|
||||||
|
<property name="variableType">_PDFObject</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">DPartRoot</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">documentPartReference</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">updatedCatalog</property>
|
||||||
|
<property name="variableType">_PDFObject</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="actionType">Code</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code">mergeTo(rootNodeReference, updatedRootNode);
|
||||||
|
mergeTo(getCatalogReference(), updatedCatalog);
|
||||||
|
return rootNodeReference;</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="functionType">Structure</property>
|
||||||
|
<property name="functionName">createDocumentPartRoot</property>
|
||||||
|
<property name="functionDescription">Creates document part root node (and setups catalog object).</property>
|
||||||
|
<property name="returnType">_PDFObjectReference</property>
|
||||||
|
</QObject>
|
||||||
<QObject class="codegen::GeneratedFunction">
|
<QObject class="codegen::GeneratedFunction">
|
||||||
<property name="objectName"></property>
|
<property name="objectName"></property>
|
||||||
<property name="items">
|
<property name="items">
|
||||||
@ -6697,6 +6911,120 @@ return annotationObject;</property>
|
|||||||
<property name="functionDescription">Sets annotation title.</property>
|
<property name="functionDescription">Sets annotation title.</property>
|
||||||
<property name="returnType">_void</property>
|
<property name="returnType">_void</property>
|
||||||
</QObject>
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedFunction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">acroForm</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">Reference to AcroForm object.</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">Parameters</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">AcroForm</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">acroForm</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">updatedCatalog</property>
|
||||||
|
<property name="variableType">_PDFObject</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="actionType">Code</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code">mergeTo(getCatalogReference(), updatedCatalog);</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="functionType">Structure</property>
|
||||||
|
<property name="functionName">setCatalogAcroForm</property>
|
||||||
|
<property name="functionDescription">Set AcroForm to catalog.</property>
|
||||||
|
<property name="returnType">_void</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedFunction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">ocProperties</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">Reference to catalog optional content properties.</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">Parameters</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">OCProperties</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">ocProperties</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">updatedCatalog</property>
|
||||||
|
<property name="variableType">_PDFObject</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="actionType">Code</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code">mergeTo(getCatalogReference(), updatedCatalog);</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="functionType">Structure</property>
|
||||||
|
<property name="functionName">setCatalogOptionalContentProperties</property>
|
||||||
|
<property name="functionDescription">Set optional content properties to catalog.</property>
|
||||||
|
<property name="returnType">_void</property>
|
||||||
|
</QObject>
|
||||||
<QObject class="codegen::GeneratedFunction">
|
<QObject class="codegen::GeneratedFunction">
|
||||||
<property name="objectName"></property>
|
<property name="objectName"></property>
|
||||||
<property name="items">
|
<property name="items">
|
||||||
@ -7378,6 +7706,70 @@ return annotationObject;</property>
|
|||||||
<property name="functionDescription">Set document language.</property>
|
<property name="functionDescription">Set document language.</property>
|
||||||
<property name="returnType">_void</property>
|
<property name="returnType">_void</property>
|
||||||
</QObject>
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedFunction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">page</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">Page</property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedParameter">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="parameterName">documentPart</property>
|
||||||
|
<property name="parameterType">_PDFObjectReference</property>
|
||||||
|
<property name="parameterDescription">Document part</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">Parameters</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items">
|
||||||
|
<QObject class="codegen::GeneratedPDFObject">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="dictionaryItemName">DPart</property>
|
||||||
|
<property name="objectType">DictionaryItemSimple</property>
|
||||||
|
<property name="value">documentPart</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="dictionaryItemName"></property>
|
||||||
|
<property name="objectType">Dictionary</property>
|
||||||
|
<property name="value"></property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="actionType">CreateObject</property>
|
||||||
|
<property name="variableName">updatedPage</property>
|
||||||
|
<property name="variableType">_PDFObject</property>
|
||||||
|
<property name="code"></property>
|
||||||
|
</QObject>
|
||||||
|
<QObject class="codegen::GeneratedAction">
|
||||||
|
<property name="objectName"></property>
|
||||||
|
<property name="items"/>
|
||||||
|
<property name="actionType">Code</property>
|
||||||
|
<property name="variableName"></property>
|
||||||
|
<property name="variableType">_void</property>
|
||||||
|
<property name="code">mergeTo(page, updatedPage);</property>
|
||||||
|
</QObject>
|
||||||
|
</property>
|
||||||
|
<property name="functionType">Structure</property>
|
||||||
|
<property name="functionName">setPageDocumentPart</property>
|
||||||
|
<property name="functionDescription">Sets document part to page.</property>
|
||||||
|
<property name="returnType">_void</property>
|
||||||
|
</QObject>
|
||||||
<QObject class="codegen::GeneratedFunction">
|
<QObject class="codegen::GeneratedFunction">
|
||||||
<property name="objectName"></property>
|
<property name="objectName"></property>
|
||||||
<property name="items">
|
<property name="items">
|
||||||
@ -7467,62 +7859,5 @@ updateDocumentInfo(qMove(updatedInfoDictionary));</property>
|
|||||||
<property name="functionDescription">This function is used to update trailer dictionary. Must be called each time the final document is being built.</property>
|
<property name="functionDescription">This function is used to update trailer dictionary. Must be called each time the final document is being built.</property>
|
||||||
<property name="returnType">_void</property>
|
<property name="returnType">_void</property>
|
||||||
</QObject>
|
</QObject>
|
||||||
<QObject class="codegen::GeneratedFunction">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items">
|
|
||||||
<QObject class="codegen::GeneratedAction">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items">
|
|
||||||
<QObject class="codegen::GeneratedParameter">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items"/>
|
|
||||||
<property name="parameterName">ocProperties</property>
|
|
||||||
<property name="parameterType">_PDFObjectReference</property>
|
|
||||||
<property name="parameterDescription">Reference to catalog optional content properties.</property>
|
|
||||||
</QObject>
|
|
||||||
</property>
|
|
||||||
<property name="actionType">Parameters</property>
|
|
||||||
<property name="variableName"></property>
|
|
||||||
<property name="variableType">_void</property>
|
|
||||||
<property name="code"></property>
|
|
||||||
</QObject>
|
|
||||||
<QObject class="codegen::GeneratedAction">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items">
|
|
||||||
<QObject class="codegen::GeneratedPDFObject">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items">
|
|
||||||
<QObject class="codegen::GeneratedPDFObject">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items"/>
|
|
||||||
<property name="dictionaryItemName">OCProperties</property>
|
|
||||||
<property name="objectType">DictionaryItemSimple</property>
|
|
||||||
<property name="value">ocProperties</property>
|
|
||||||
</QObject>
|
|
||||||
</property>
|
|
||||||
<property name="dictionaryItemName"></property>
|
|
||||||
<property name="objectType">Dictionary</property>
|
|
||||||
<property name="value"></property>
|
|
||||||
</QObject>
|
|
||||||
</property>
|
|
||||||
<property name="actionType">CreateObject</property>
|
|
||||||
<property name="variableName">updatedCatalog</property>
|
|
||||||
<property name="variableType">_PDFObject</property>
|
|
||||||
<property name="code"></property>
|
|
||||||
</QObject>
|
|
||||||
<QObject class="codegen::GeneratedAction">
|
|
||||||
<property name="objectName"></property>
|
|
||||||
<property name="items"/>
|
|
||||||
<property name="actionType">Code</property>
|
|
||||||
<property name="variableName"></property>
|
|
||||||
<property name="variableType">_void</property>
|
|
||||||
<property name="code">mergeTo(getCatalogReference(), updatedCatalog);</property>
|
|
||||||
</QObject>
|
|
||||||
</property>
|
|
||||||
<property name="functionType">Structure</property>
|
|
||||||
<property name="functionName">setCatalogOptionalContentProperties</property>
|
|
||||||
<property name="functionDescription">Set optional content properties to catalog.</property>
|
|
||||||
<property name="returnType">_void</property>
|
|
||||||
</QObject>
|
|
||||||
</property>
|
</property>
|
||||||
</root>
|
</root>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user