[gs-cvs] rev 7054 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Tue Sep 19 01:20:46 PDT 2006


Author: leonardo
Date: 2006-09-19 01:20:45 -0700 (Tue, 19 Sep 2006)
New Revision: 7054

Modified:
   trunk/gs/src/devs.mak
   trunk/gs/src/gdevpdfu.c
   trunk/gs/src/gdevpdtd.c
   trunk/gs/src/gdevpdtd.h
   trunk/gs/src/gdevpdtf.c
   trunk/gs/src/gdevpdtf.h
   trunk/gs/src/gdevpdtw.c
Log:
Fix (pdfwrite) : Generalize pdf_finish_font_descriptors (continued).

DETAILS :

This is a preparation for the bug 688790  
"pdfwrite : The PDF/A conversion needs to to re-encode texts".
The last patch appears incomplete.
This adds the pdf_resource_type_t parameter to pdf_finish_resources,
and defines pdf_convert_truetype_font_descriptor for future implementation.

This change is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.


Modified: trunk/gs/src/devs.mak
===================================================================
--- trunk/gs/src/devs.mak	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/devs.mak	2006-09-19 08:20:45 UTC (rev 7054)
@@ -1012,7 +1012,7 @@
 $(GLOBJ)gdevpdtd.$(OBJ) : $(GLSRC)gdevpdtd.c $(math__h) $(memory__h) $(gx_h)\
  $(gserrors_h) $(gsrect_h)\
  $(gdevpdfo_h) $(gdevpdfx_h)\
- $(gdevpdtb_h) $(gdevpdtd_h)
+ $(gdevpdtb_h) $(gdevpdtd_h) $(gdevpdtf_h)
 	$(GLCC) $(GLO_)gdevpdtd.$(OBJ) $(C_) $(GLSRC)gdevpdtd.c
 
 $(GLOBJ)gdevpdtf.$(OBJ) : $(GLSRC)gdevpdtf.c $(gx_h) $(memory__h)\

Modified: trunk/gs/src/gdevpdfu.c
===================================================================
--- trunk/gs/src/gdevpdfu.c	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/gdevpdfu.c	2006-09-19 08:20:45 UTC (rev 7054)
@@ -1143,7 +1143,8 @@
 	if (code >= 0)
 	    code = code1;
     }
-    code1 = pdf_finish_resources(pdev, pdf_release_FontDescriptor_components);
+    code1 = pdf_finish_resources(pdev, resourceFontDescriptor,
+			pdf_release_FontDescriptor_components);
     if (code >= 0)
 	code = code1;
     for (i = 0; i < NUM_RESOURCE_TYPES; ++i) {

Modified: trunk/gs/src/gdevpdtd.c
===================================================================
--- trunk/gs/src/gdevpdtd.c	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/gdevpdtd.c	2006-09-19 08:20:45 UTC (rev 7054)
@@ -22,6 +22,7 @@
 #include "gdevpdfo.h"		/* for object->written */
 #include "gdevpdtb.h"
 #include "gdevpdtd.h"
+#include "gdevpdtf.h"
 
 /* ================ Types and structures ================ */
 
@@ -677,15 +678,10 @@
 }
 
 /*
- * Convert True Type fonts into CID fonts for PDF/A.
+ * Convert True Type font descriptor into CID font descriptor for PDF/A.
  */
 int 
-pdf_convert_truetype_font(gx_device_pdf *pdev, pdf_resource_t *pres)
+pdf_convert_truetype_font_descriptor(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd)
 {
-    if (!pdev->PDFA)
-	return 0;
-    else {
-	/* Reserved for future implementation. */
-	return 0;
-    }
+    return 0;
 }

Modified: trunk/gs/src/gdevpdtd.h
===================================================================
--- trunk/gs/src/gdevpdtd.h	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/gdevpdtd.h	2006-09-19 08:20:45 UTC (rev 7054)
@@ -130,7 +130,7 @@
 int pdf_finish_FontDescriptor(gx_device_pdf *pdev,
 			      pdf_resource_t *pfd);
 
-int pdf_finish_resources(gx_device_pdf *pdev,
+int pdf_finish_resources(gx_device_pdf *pdev, pdf_resource_type_t type,
 			int (*finish_proc)(gx_device_pdf *,
 					   pdf_resource_t *));
 /*
@@ -149,10 +149,4 @@
  */
 int pdf_mark_font_descriptor_used(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd);
 
-/*
- * Convert True Type fonts into CID fonts for PDF/A.
- */
-int pdf_convert_truetype_font(gx_device_pdf *pdev,
-			      pdf_resource_t *pres);
-
 #endif /* gdevpdtd_INCLUDED */

Modified: trunk/gs/src/gdevpdtf.c
===================================================================
--- trunk/gs/src/gdevpdtf.c	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/gdevpdtf.c	2006-09-19 08:20:45 UTC (rev 7054)
@@ -998,6 +998,26 @@
     return 0;
 }
 
+/*
+ * Convert True Type fonts into CID fonts for PDF/A.
+ */
+int 
+pdf_convert_truetype_font(gx_device_pdf *pdev, pdf_resource_t *pres)
+{
+    if (!pdev->PDFA )
+	return 0;
+    else {
+	pdf_font_resource_t *pdfont = (pdf_font_resource_t *) pres;
+
+	if (pdfont->FontType != ft_TrueType)
+	    return 0;
+	else {
+	    /* Reserved for future implementation. */
+	    return 0;
+	}
+    }
+}
+
 /* ---------------- CMap resources ---------------- */
 
 /*

Modified: trunk/gs/src/gdevpdtf.h
===================================================================
--- trunk/gs/src/gdevpdtf.h	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/gdevpdtf.h	2006-09-19 08:20:45 UTC (rev 7054)
@@ -432,6 +432,16 @@
  */
 const gs_font_name *pdf_choose_font_name(gs_font *font, bool key_name);
 
+/*
+ * Convert True Type fonts into CID fonts for PDF/A.
+ */
+int pdf_convert_truetype_font(gx_device_pdf *pdev,  pdf_resource_t *pres);
+
+/*
+ * Convert True Type font descriptor into CID font descriptor for PDF/A.
+ */
+int pdf_convert_truetype_font_descriptor(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd);
+
 /* ---------------- CMap resources ---------------- */
 
 /*

Modified: trunk/gs/src/gdevpdtw.c
===================================================================
--- trunk/gs/src/gdevpdtw.c	2006-09-19 07:12:54 UTC (rev 7053)
+++ trunk/gs/src/gdevpdtw.c	2006-09-19 08:20:45 UTC (rev 7054)
@@ -610,7 +610,7 @@
     return 0;
 }
 int
-pdf_finish_resources(gx_device_pdf *pdev,
+pdf_finish_resources(gx_device_pdf *pdev, pdf_resource_type_t type,
 			int (*finish_proc)(gx_device_pdf *,
 					   pdf_resource_t *))
 {
@@ -618,7 +618,7 @@
     pdf_resource_t *pres;
 
     for (j = 0; j < NUM_RESOURCE_CHAINS; ++j)
-	for (pres = pdev->resources[resourceFontDescriptor].chains[j];
+	for (pres = pdev->resources[type].chains[j];
 	     pres != 0; pres = pres->next
 	     ) {
 	    int code = finish_proc(pdev, pres);
@@ -642,11 +642,11 @@
     pdf_clean_standard_fonts(pdev);
     if ((code = pdf_free_font_cache(pdev)) < 0 ||
 	(code = pdf_write_resource_objects(pdev, resourceCharProc)) < 0 ||
- 	(code = pdf_finish_resources(pdev, pdf_convert_truetype_font)) < 0 ||
- 	(code = pdf_finish_resources(pdev, pdf_finish_FontDescriptor)) < 0 ||
+ 	(code = pdf_finish_resources(pdev, resourceFont, pdf_convert_truetype_font)) < 0 ||
+ 	(code = pdf_finish_resources(pdev, resourceFontDescriptor, pdf_finish_FontDescriptor)) < 0 ||
   	(code = write_font_resources(pdev, &pdev->resources[resourceCIDFont])) < 0 ||
 	(code = write_font_resources(pdev, &pdev->resources[resourceFont])) < 0 ||
-	(code = pdf_finish_resources(pdev, pdf_write_FontDescriptor)) < 0
+	(code = pdf_finish_resources(pdev, resourceFontDescriptor, pdf_write_FontDescriptor)) < 0
 	)
 	return code;
 



More information about the gs-cvs mailing list