summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--examples/pdf-double-page-size.cc10
-rw-r--r--qpdf/test_driver.cc18
3 files changed, 18 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index add0c5c7..22950432 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-07-25 Jay Berkenbilt <ejb@ql.org>
+
+ * From Tobias: add QPDFObjectHandle::replaceStreamData that takes
+ a std::string analogous to the QPDFObjectHandle::newStream that
+ takes a string that was added earlier.
+
2012-07-21 Jay Berkenbilt <ejb@ql.org>
* Change configure to have image comparison tests disabled by
diff --git a/examples/pdf-double-page-size.cc b/examples/pdf-double-page-size.cc
index c2eb48a3..8a1867aa 100644
--- a/examples/pdf-double-page-size.cc
+++ b/examples/pdf-double-page-size.cc
@@ -61,12 +61,7 @@ int main(int argc, char* argv[])
char const* password = (argc == 4) ? argv[3] : "";
// Text to prepend to each page's contents
- char const* content = "2 0 0 2 0 0 cm\n";
-
- // Copy text into a buffer without the null terminator
- PointerHolder<Buffer> b = new Buffer(strlen(content));
- unsigned char* bp = b->getBuffer();
- memcpy(bp, (unsigned char*)content, strlen(content));
+ std::string content = "2 0 0 2 0 0 cm\n";
try
{
@@ -80,7 +75,8 @@ int main(int argc, char* argv[])
QPDFObjectHandle& page = *iter;
// Prepend the buffer to the page's contents
- page.addPageContents(QPDFObjectHandle::newStream(&qpdf, b), true);
+ page.addPageContents(
+ QPDFObjectHandle::newStream(&qpdf, content), true);
// Double the size of each of the content boxes
doubleBoxSize(page, "/MediaBox");
diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc
index 6cbb7882..3861c403 100644
--- a/qpdf/test_driver.cc
+++ b/qpdf/test_driver.cc
@@ -455,11 +455,9 @@ void runtest(int n, char const* filename1, char const* filename2)
{
throw std::logic_error("test 7 run on file with no QStream");
}
- PointerHolder<Buffer> b = new Buffer(20);
- unsigned char* bp = b->getBuffer();
- memcpy(bp, (char*)"new data for stream\n", 20); // no null!
qstream.replaceStreamData(
- b, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull());
+ "new data for stream\n",
+ QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull());
QPDFWriter w(pdf, "a.pdf");
w.setStaticID(true);
w.setStreamDataMode(qpdf_s_preserve);
@@ -509,8 +507,12 @@ void runtest(int n, char const* filename1, char const* filename2)
else if (n == 9)
{
QPDFObjectHandle root = pdf.getRoot();
+ // Explicitly exercise the Buffer version of newStream
+ PointerHolder<Buffer> buf = new Buffer(20);
+ unsigned char* bp = buf->getBuffer();
+ memcpy(bp, (char*)"data for new stream\n", 20); // no null!
QPDFObjectHandle qstream = QPDFObjectHandle::newStream(
- &pdf, "data for new stream\n");
+ &pdf, buf);
QPDFObjectHandle rstream = QPDFObjectHandle::newStream(&pdf);
try
{
@@ -521,11 +523,9 @@ void runtest(int n, char const* filename1, char const* filename2)
{
std::cout << "exception: " << e.what() << std::endl;
}
- PointerHolder<Buffer> buf = new Buffer(22);
- unsigned char* bp = buf->getBuffer();
- memcpy(bp, (char*)"data for other stream\n", 22); // no null!
rstream.replaceStreamData(
- buf, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull());
+ "data for other stream\n",
+ QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull());
root.replaceKey("/QStream", qstream);
root.replaceKey("/RStream", rstream);
QPDFWriter w(pdf, "a.pdf");