texlive[46794] Build/source/texk/dvipdfm-x: support libdpx

commits+kakuto at tug.org commits+kakuto at tug.org
Sat Mar 3 10:49:44 CET 2018


Revision: 46794
          http://tug.org/svn/texlive?view=revision&revision=46794
Author:   kakuto
Date:     2018-03-03 10:49:43 +0100 (Sat, 03 Mar 2018)
Log Message:
-----------
support libdpx

Modified Paths:
--------------
    trunk/Build/source/texk/dvipdfm-x/ChangeLog
    trunk/Build/source/texk/dvipdfm-x/xbb.c

Modified: trunk/Build/source/texk/dvipdfm-x/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/ChangeLog	2018-03-03 01:23:30 UTC (rev 46793)
+++ trunk/Build/source/texk/dvipdfm-x/ChangeLog	2018-03-03 09:49:43 UTC (rev 46794)
@@ -1,3 +1,7 @@
+2018-03-03  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* xbb.c: Support libdpx.
+
 2018-03-02  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	* epdf.c, pdfobj.c, pdfobj.h: Remove multiple warnings.

Modified: trunk/Build/source/texk/dvipdfm-x/xbb.c
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/xbb.c	2018-03-03 01:23:30 UTC (rev 46793)
+++ trunk/Build/source/texk/dvipdfm-x/xbb.c	2018-03-03 09:49:43 UTC (rev 46794)
@@ -500,6 +500,8 @@
   int page_no = Include_Page;
   int count;
   pdf_rect bbox;
+  pdf_tmatrix matrix;
+  pdf_coord   p1, p2, p3, p4;
 
   pf = pdf_open(filename, fp);
   if (!pf) {
@@ -507,7 +509,7 @@
     return;
   }
   count = pdf_doc_get_page_count(pf);
-  page  = pdf_doc_get_page(pf, page_no, PageBox, &bbox, NULL);
+  page  = pdf_doc_get_page(pf, page_no, PageBox, &bbox, &matrix, NULL);
 
   pdf_close(pf);
 
@@ -516,10 +518,22 @@
 
   pdf_release_obj(page);
 
-  box->llx = bbox.llx;
-  box->lly = bbox.lly;
-  box->urx = bbox.urx;
-  box->ury = bbox.ury;
+  /* Image's attribute "bbox" here is affected by /Rotate entry of included
+   * PDF page.
+   */
+  p1.x = bbox.llx; p1.y = bbox.lly;
+  pdf_dev_transform(&p1, &matrix);
+  p2.x = bbox.urx; p2.y = bbox.lly;
+  pdf_dev_transform(&p2, &matrix);
+  p3.x = bbox.urx; p3.y = bbox.ury;
+  pdf_dev_transform(&p3, &matrix);
+  p4.x = bbox.llx; p4.y = bbox.ury;
+  pdf_dev_transform(&p4, &matrix);
+
+  box->llx = min4(p1.x, p2.x, p3.x, p4.x);
+  box->lly = min4(p1.y, p2.y, p3.y, p4.y);
+  box->urx = max4(p1.x, p2.x, p3.x, p4.x);
+  box->ury = max4(p1.y, p2.y, p3.y, p4.y);
 }
 
 void aptex_extractbb (char * pict, uint32_t page, uint32_t rect, pdf_rect * bbox)



More information about the tex-live-commits mailing list