summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2020-11-07 16:18:00 +0100
committerTomaž Vajngerl <quikee@gmail.com>2020-11-12 22:26:13 +0100
commitfbf14b4e48c7677d5acf9a0ab91a3dc8d4ffc6fd (patch)
tree58456b840662e915478248f31fad7d2693eafd02 /vcl
parent5db34391ebf7a51d26196f3fe28f3d9327ea2eb6 (diff)
pdf: add writeString for pdf elements for writing element content
This adds a writeString virtual method to PDFElement and subclasses and implemnts them for each element. This is used to write the PDF object hierarchy back to a string buffer. Change-Id: I484c9cebd8ab9149029b925a47e68b6a4fdf9be1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105492 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/filter/ipdf/pdfdocument.cxx28
1 files changed, 25 insertions, 3 deletions
diff --git a/vcl/source/filter/ipdf/pdfdocument.cxx b/vcl/source/filter/ipdf/pdfdocument.cxx
index 7a0a7b4dce65..911cb2381ed5 100644
--- a/vcl/source/filter/ipdf/pdfdocument.cxx
+++ b/vcl/source/filter/ipdf/pdfdocument.cxx
@@ -49,6 +49,7 @@ class PDFCommentElement : public PDFElement
public:
explicit PDFCommentElement(PDFDocument& rDoc);
bool Read(SvStream& rStream) override;
+ void writeString(OStringBuffer& /*rBuffer*/) override {}
};
}
@@ -66,6 +67,8 @@ public:
PDFEndDictionaryElement();
bool Read(SvStream& rStream) override;
sal_uInt64 GetLocation() const;
+
+ void writeString(OStringBuffer& /*rBuffer*/) override {}
};
/// End of a stream: 'endstream' keyword.
@@ -73,6 +76,8 @@ class PDFEndStreamElement : public PDFElement
{
public:
bool Read(SvStream& rStream) override;
+
+ void writeString(OStringBuffer& /*rBuffer*/) override {}
};
/// End of an object: 'endobj' keyword.
@@ -80,6 +85,8 @@ class PDFEndObjectElement : public PDFElement
{
public:
bool Read(SvStream& rStream) override;
+
+ void writeString(OStringBuffer& /*rBuffer*/) override {}
};
/// End of an array: ']'.
@@ -92,14 +99,27 @@ public:
PDFEndArrayElement();
bool Read(SvStream& rStream) override;
sal_uInt64 GetOffset() const;
+
+ void writeString(OStringBuffer& /*rBuffer*/) override {}
};
/// Boolean object: a 'true' or a 'false'.
class PDFBooleanElement : public PDFElement
{
+ bool m_aValue;
+
public:
- explicit PDFBooleanElement(bool bValue);
+ explicit PDFBooleanElement(bool bValue)
+ : m_aValue(bValue)
+ {
+ }
+
bool Read(SvStream& rStream) override;
+
+ void writeString(OStringBuffer& rBuffer) override
+ {
+ rBuffer.append(m_aValue ? "true" : "false");
+ }
};
/// Null object: the 'null' singleton.
@@ -107,6 +127,8 @@ class PDFNullElement : public PDFElement
{
public:
bool Read(SvStream& rStream) override;
+
+ void writeString(OStringBuffer& rBuffer) override { rBuffer.append("null"); }
};
}
@@ -123,6 +145,8 @@ public:
bool Read(SvStream& rStream) override;
PDFElement* Lookup(const OString& rDictionaryKey);
sal_uInt64 GetLocation() const;
+
+ void writeString(OStringBuffer& /*rBuffer*/) override {}
};
XRefEntry::XRefEntry() = default;
@@ -2287,8 +2311,6 @@ sal_uInt64 PDFNumberElement::GetLocation() const { return m_nOffset; }
sal_uInt64 PDFNumberElement::GetLength() const { return m_nLength; }
-PDFBooleanElement::PDFBooleanElement(bool /*bValue*/) {}
-
bool PDFBooleanElement::Read(SvStream& /*rStream*/) { return true; }
bool PDFNullElement::Read(SvStream& /*rStream*/) { return true; }