File: 0054-Revert-Fix-drawing-of-header-footer.patch

package info (click to toggle)
calibre 8.5.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 431,828 kB
  • sloc: python: 450,752; ansic: 87,218; javascript: 57,667; cpp: 18,719; xml: 1,244; sh: 935; sql: 735; objc: 330; makefile: 68; sed: 3
file content (37 lines) | stat: -rw-r--r-- 1,569 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From: YOKOTA Hiroshi <yokota.hgml@gmail.com>
Date: Fri, 26 May 2023 21:26:28 +0900
Subject: Revert "Fix drawing of header/footer"

Forwarded: not-needed

This reverts commit 20e4db008e51f841ab17a9e7bc20872e1ca9585c.
---
 src/calibre/utils/podofo/impose.cpp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/calibre/utils/podofo/impose.cpp b/src/calibre/utils/podofo/impose.cpp
index e695fe9..6705037 100644
--- a/src/calibre/utils/podofo/impose.cpp
+++ b/src/calibre/utils/podofo/impose.cpp
@@ -12,14 +12,13 @@ using namespace pdf;
 
 static void
 impose_page(PdfMemDocument *doc, unsigned int dest_page_num, unsigned int src_page_num) {
-    auto &src_page = doc->GetPages().GetPageAt(src_page_num);
-    auto xobj = doc->CreateXObjectForm(src_page.GetMediaBox(), "HeaderFooter");
-    xobj->FillFromPage(src_page);
-    auto &dest = doc->GetPages().GetPageAt(dest_page_num);
-    PdfPainter painter;
-    painter.SetCanvas(dest);
-    painter.DrawXObject(*xobj, 0, 0);
-    painter.FinishDrawing();
+    auto xobj = doc->CreateXObjectForm(Rect(), "HeaderFooter");
+    xobj->FillFromPage(doc->GetPages().GetPageAt(src_page_num));
+    auto dest = &doc->GetPages().GetPageAt(dest_page_num);
+    static unsigned counter = 0;
+    dest->GetOrCreateResources().AddResource("XObject", "Imp"s + std::to_string(++counter), xobj->GetObject());
+    auto data = "q\n1 0 0 1 0 0 cm\n/"s + xobj->GetIdentifier().GetEscapedName() + " Do\nQ\n"s;
+    dest->GetOrCreateContents().GetStreamForAppending().SetData(data);
 }
 
 static PyObject*