Blob Blame History Raw
                                                                     
                                                                     
                                                                     
                                             
diff -r -u /tmp/pdftk-1.41/pdftk/attachments.cc ./pdftk/attachments.cc
--- /tmp/pdftk-1.41/pdftk/attachments.cc	2004-10-27 02:57:44.000000000 +0100
+++ ./pdftk/attachments.cc	2009-02-12 15:38:08.000000000 +0000
@@ -51,7 +51,11 @@
 
 #include "com/lowagie/text/Document.h"
 #include "com/lowagie/text/Rectangle.h"
+// Ewww, PdfName has a field called NULL.
+#undef NULL
 #include "com/lowagie/text/pdf/PdfName.h"
+#define NULL __null
+
 #include "com/lowagie/text/pdf/PdfString.h"
 #include "com/lowagie/text/pdf/PdfNumber.h"
 #include "com/lowagie/text/pdf/PdfArray.h"
@@ -148,8 +152,8 @@
 
 					itext::Rectangle* crop_box_p= 
 						input_reader_p->getCropBox( m_input_attach_file_pagenum );
-					float corner_top= crop_box_p->top()- margin;
-					float corner_left= crop_box_p->left()+ margin;
+					float corner_top= crop_box_p->getTop()- margin;
+					float corner_left= crop_box_p->getLeft()+ margin;
 
 					itext::PdfArray* annots_p= (itext::PdfArray*)
 						input_reader_p->getPdfObject( page_p->get( itext::PdfName::ANNOTS ) );
@@ -187,11 +191,11 @@
 								string filename= drop_path(*vit);
 
 								// wrap our location over page bounds, if needed
-								if( crop_box_p->right() < corner_left+ trans ) {
-									corner_left= crop_box_p->left()+ margin;
+								if( crop_box_p->getRight() < corner_left+ trans ) {
+									corner_left= crop_box_p->getLeft()+ margin;
 								}
-								if( corner_top- trans< crop_box_p->bottom() ) {
-									corner_top= crop_box_p->top()- margin;
+								if( corner_top- trans< crop_box_p->getBottom() ) {
+									corner_top= crop_box_p->getTop()- margin;
 								}
 
 								itext::Rectangle* annot_bbox_p= 
diff -r -u /tmp/pdftk-1.41/pdftk/Makefile.Base ./pdftk/Makefile.Base
--- /tmp/pdftk-1.41/pdftk/Makefile.Base	2006-10-25 00:44:06.000000000 +0100
+++ ./pdftk/Makefile.Base	2009-02-12 13:40:04.000000000 +0000
@@ -15,34 +15,12 @@
 # them into fonts.a resulted in none of these resources appearing in pdftk
 # (on MinGW gcj 3.4.1)
 #
-itext_libs= \
-$(java_libs_root)/com/lowagie/text/pdf/pdf.a \
-$(java_libs_root)/com/lowagie/text/text.a \
-$(java_libs_root)/com/lowagie/text/pdf/pdf.a \
-$(java_libs_root)/com/lowagie/text/pdf/codec/codec.a \
-$(java_libs_root)/com/lowagie/text/pdf/codec/wmf/wmf.a \
-$(java_libs_root)/com/lowagie/text/pdf/fonts/fonts.a \
-$(java_libs_root)/com/lowagie/text/markup/markup.a \
-$(java_libs_root)/com/lowagie/text/xml/xmp/xmp.a \
-$(java_libs_root)/com/lowagie/bc/asn1/asn1.a \
-$(java_libs_root)/com/lowagie/text/pdf/codec/postscript/postscript.a \
+itext_libs=$(LIBDIR)/gcj/itext/itext-2.1.4.jar.so
 
 # font metric files, included as resources
 afms= $(wildcard $(java_libs_root)/com/lowagie/text/pdf/fonts/*.afm)
 afm_objects= $(patsubst %.afm, %.o, $(afms))
 
-# older versions of libgcj might not have the MD5 algorithm,
-# so I added it here; these *_local java files were grabbed from
-# libgcj CVS on March 7, 2004; diffed September 5, 2006 w/ gcc 4.1.1
-#
-# gnu/gcj/convert/Input_UnicodeBig.java was grabbed March 26, 2004; diffed September 5, 2006 w/ gcc 4.1.1
-#
-libgcj_local_libs = \
-$(java_libs_root)/java_local/security/security.a \
-$(java_libs_root)/gnu_local/java/security/provider/provider.a \
-$(java_libs_root)/gnu_local/java/security/security.a \
-$(java_libs_root)/gnu/gcj/convert/convert.a
-
 # this must already be set according to your platform Makefile;
 # we're just appending to it, here
 #
@@ -51,19 +29,18 @@
 all : java_libs pdftk
 
 java_libs :
-	$(MAKE) -C $(java_libs_root)
 
-attachments.o : attachments.cc attachments.h pdftk.h $(itext_libs) $(libgcj_local_libs)
+attachments.o : attachments.cc attachments.h pdftk.h $(itext_libs)
 	$(CXX) attachments.cc -I$(java_libs_root) $(CPPFLAGS) -c
 
-report.o : report.cc report.h pdftk.h $(itext_libs) $(libgcj_local_libs)
+report.o : report.cc report.h pdftk.h $(itext_libs)
 	$(CXX) report.cc -I$(java_libs_root) $(CPPFLAGS) -c
 
-pdftk.o : pdftk.cc pdftk.h attachments.h report.h $(itext_libs) $(libgcj_local_libs)
+pdftk.o : pdftk.cc pdftk.h attachments.h report.h $(itext_libs)
 	$(CXX) pdftk.cc -I$(java_libs_root) $(CPPFLAGS) -c
 
-pdftk : pdftk.o attachments.o report.o $(itext_libs) $(libgcj_local_libs) $(afm_objects)
-	$(CXX) pdftk.o attachments.o report.o $(itext_libs) $(libgcj_local_libs) $(afm_objects) -I$(java_libs_root) $(CPPFLAGS) $(CXXFLAGS) -o pdftk
+pdftk : pdftk.o attachments.o report.o $(itext_libs) $(afm_objects)
+	$(CXX) pdftk.o attachments.o report.o $(itext_libs) $(afm_objects) -I$(java_libs_root) $(CPPFLAGS) $(CXXFLAGS) -o pdftk
 
 install:
 	/usr/bin/install pdftk /usr/local/bin 
diff -r -u /tmp/pdftk-1.41/pdftk/Makefile.RedHat ./pdftk/Makefile.RedHat
--- /tmp/pdftk-1.41/pdftk/Makefile.RedHat	2006-09-21 18:37:38.000000000 +0100
+++ ./pdftk/Makefile.RedHat	2009-02-12 12:18:43.000000000 +0000
@@ -26,12 +26,12 @@
 # if you want pdftk to ask before overwriting a file, set
 # ASK_ABOUT_WARNINGS to true; otherwise: false; override this default
 # with the dont_ask or do_ask command-line options
-CPPFLAGS= -O2 -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -fdollars-in-identifiers
+CPPFLAGS= ${RPM_OPT_FLAGS} -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -fdollars-in-identifiers -g -fpic
 CXXFLAGS= -lgcj
 
 # itext compiler flags
 # -O3 might cause pdftk to segfault on cat operation (gcc 3.4.4)
-export GCJFLAGS= -O2
+export GCJFLAGS= ${RPM_OPT_FLAGS}
 
 #
 export ARFLAGS= rs
diff -r -u /tmp/pdftk-1.41/pdftk/pdftk.cc ./pdftk/pdftk.cc
--- /tmp/pdftk-1.41/pdftk/pdftk.cc	2006-11-28 22:51:36.000000000 +0000
+++ ./pdftk/pdftk.cc	2009-02-12 16:28:33.000000000 +0000
@@ -50,7 +50,12 @@
 
 #include "com/lowagie/text/Document.h"
 #include "com/lowagie/text/Rectangle.h"
+
+// Ewww, PdfName has a field called NULL.
+#undef NULL
 #include "com/lowagie/text/pdf/PdfName.h"
+#define NULL __null
+
 #include "com/lowagie/text/pdf/PdfString.h"
 #include "com/lowagie/text/pdf/PdfNumber.h"
 #include "com/lowagie/text/pdf/PdfArray.h"
@@ -191,7 +196,8 @@
 		// store in this java object so the gc can trace it
 		g_dont_collect_p->addElement( reader );
 
-		input_pdf_p->m_authorized_b= ( !reader->encrypted || reader->passwordIsOwner );
+		input_pdf_p->m_authorized_b= ( !reader->encrypted // || reader->passwordIsOwner
+																	 );
 		if( !input_pdf_p->m_authorized_b ) {
 			open_success_b= false;
 		}
@@ -203,6 +209,7 @@
 		open_success_b= false;
 	}
 	catch( java::lang::Throwable* t_p ) { // unexpected error
+		t_p->printStackTrace();
 		cerr << "Error: Unexpected Exception in open_reader()" << endl;
 		open_success_b= false;
 							
@@ -2017,14 +2024,14 @@
 				output_doc_p->addCreator( jv_creator_p );
 
 				// un/compress output streams?
-				if( m_output_uncompress_b ) {
-					writer_p->filterStreams= true;
-					writer_p->compressStreams= false;
-				}
-				else if( m_output_compress_b ) {
-					writer_p->filterStreams= false;
-					writer_p->compressStreams= true;
-				}
+// 				if( m_output_uncompress_b ) {
+// 					writer_p->filterStreams= true;
+// 					writer_p->compressStreams= false;
+// 				}
+// 				else if( m_output_compress_b ) {
+// 					writer_p->filterStreams= false;
+// 					writer_p->compressStreams= true;
+// 				}
 
 				// encrypt output?
 				if( m_output_encryption_strength!= none_enc ||
@@ -2033,7 +2040,7 @@
 					{
 						// if no stregth is given, default to 128 bit,
 						// (which is incompatible w/ Acrobat 4)
-						bool bit128_b=
+						jboolean bit128_b=
 							( m_output_encryption_strength!= bits40_enc );
 
 						writer_p->setEncryption( output_user_pw_p,
@@ -2057,7 +2064,8 @@
 							input_reader_p->getPdfObject( trailer_p->get( itext::PdfName::ID ) );
 						if( file_id_p && file_id_p->isArray() ) {
 
-							writer_p->setFileID( file_id_p );
+							// Absent from itext-2.1.4
+// 							writer_p->setFileID( file_id_p );
 						}
 					}
 
@@ -2168,12 +2176,14 @@
 
 					// un/compress output streams?
 					if( m_output_uncompress_b ) {
-						writer_p->filterStreams= true;
-						writer_p->compressStreams= false;
+						// Absent from itext-2.1.4
+// 						writer_p->filterStreams= true;
+// 						writer_p->compressStreams= false;
 					}
 					else if( m_output_compress_b ) {
-						writer_p->filterStreams= false;
-						writer_p->compressStreams= true;
+						// Absent from itext-2.1.4
+// 						writer_p->filterStreams= false;
+// 						writer_p->compressStreams= true;
 					}
 
 					// encrypt output?
@@ -2183,7 +2193,7 @@
 						{
 							// if no stregth is given, default to 128 bit,
 							// (which is incompatible w/ Acrobat 4)
-							bool bit128_b=
+							jboolean bit128_b=
 								( m_output_encryption_strength!= bits40_enc );
 
 							writer_p->setEncryption( output_user_pw_p,
@@ -2403,13 +2413,15 @@
 				// un/compress output streams?
 				if( m_output_uncompress_b ) {
 					add_marks_to_pages( input_reader_p );
-					writer_p->filterStreams= true;
-					writer_p->compressStreams= false;
+					// Absent from itext-2.1.4
+// 					writer_p->filterStreams= true;
+// 					writer_p->compressStreams= false;
 				}
 				else if( m_output_compress_b ) {
 					remove_marks_from_pages( input_reader_p );
-					writer_p->filterStreams= false;
-					writer_p->compressStreams= true;
+					// Absent from itext-2.1.4
+// 					writer_p->filterStreams= false;
+// 					writer_p->compressStreams= true;
 				}
 
 				// encrypt output?
@@ -2420,13 +2432,13 @@
 
 						// if no stregth is given, default to 128 bit,
 						// (which is incompatible w/ Acrobat 4)
-						bool bit128_b=
+						jboolean bit128_b=
 							( m_output_encryption_strength!= bits40_enc );
 
 						writer_p->setEncryption( output_user_pw_p,
 																			output_owner_pw_p,
 																			m_output_user_perms,
-																			bit128_b );
+																		  bit128_b );
 					}
 
 				// fill form fields?
@@ -2435,8 +2447,11 @@
 					{
 						itext::AcroFields* fields_p= writer_p->getAcroFields();
 						fields_p->setGenerateAppearances( true ); // have iText create field appearances
-						if( fdf_reader_p && fields_p->setFields( fdf_reader_p ) ||
-								xfdf_reader_p && fields_p->setFields( xfdf_reader_p ) )
+						if( fdf_reader_p ) 
+							fields_p->setFields( fdf_reader_p );
+						if(	xfdf_reader_p )
+							fields_p->setFields( xfdf_reader_p );
+
 							{ // Rich Text input found
 
 								// set the PDF so that Acrobat will create appearances;
@@ -2486,16 +2501,16 @@
 							doc_page_size_p= doc_page_size_p->rotate();
 						}
 
-						jfloat h_scale= doc_page_size_p->width() / mark_page_size_p->width();
-						jfloat v_scale= doc_page_size_p->height() / mark_page_size_p->height();
+						jfloat h_scale= doc_page_size_p->getWidth() / mark_page_size_p->getWidth();
+						jfloat v_scale= doc_page_size_p->getHeight() / mark_page_size_p->getHeight();
 						jfloat mark_scale= (h_scale< v_scale) ? h_scale : v_scale;
 
-						jfloat h_trans= (jfloat)(doc_page_size_p->left()- mark_page_size_p->left()* mark_scale +
-																		 (doc_page_size_p->width()- 
-																			mark_page_size_p->width()* mark_scale) / 2.0);
-						jfloat v_trans= (jfloat)(doc_page_size_p->bottom()- mark_page_size_p->bottom()* mark_scale +
-																		 (doc_page_size_p->height()- 
-																			mark_page_size_p->height()* mark_scale) / 2.0);
+						jfloat h_trans= (jfloat)(doc_page_size_p->getLeft()- mark_page_size_p->getLeft()* mark_scale +
+																		 (doc_page_size_p->getWidth()- 
+																			mark_page_size_p->getWidth()* mark_scale) / 2.0);
+						jfloat v_trans= (jfloat)(doc_page_size_p->getBottom()- mark_page_size_p->getBottom()* mark_scale +
+																		 (doc_page_size_p->getHeight()- 
+																			mark_page_size_p->getHeight()* mark_scale) / 2.0);
           
 						com::lowagie::text::pdf::PdfContentByte* content_byte_p= 
 							( background_b ) ? writer_p->getUnderContent( ii ) : writer_p->getOverContent( ii );
@@ -2512,20 +2527,20 @@
 																					 0, -1* mark_scale,
 																					 mark_scale, 0,
 																					 h_trans, 
-																					 v_trans+ mark_page_size_p->height()* mark_scale );
+																					 v_trans+ mark_page_size_p->getHeight()* mark_scale );
 						}
 						else if( mark_page_rotation== 180 ) {
 							content_byte_p->addTemplate( mark_page_p, 
 																					 -1* mark_scale, 0,
 																					 0, -1* mark_scale,
-																					 h_trans+ mark_page_size_p->width()* mark_scale, 
-																					 v_trans+ mark_page_size_p->height()* mark_scale );
+																					 h_trans+ mark_page_size_p->getWidth()* mark_scale, 
+																					 v_trans+ mark_page_size_p->getHeight()* mark_scale );
 						}
 						else if( mark_page_rotation== 270 ) {
 							content_byte_p->addTemplate( mark_page_p, 
 																					 0, mark_scale,
 																					 -1* mark_scale, 0,
-																					 h_trans+ mark_page_size_p->width()* mark_scale, v_trans );
+																					 h_trans+ mark_page_size_p->getWidth()* mark_scale, v_trans );
 						}
 					}
 				}
@@ -2537,7 +2552,7 @@
 				}
 
 				// done; write output
-				writer_p->close();
+				writer_p->close(NULL);
 			}
 			break;
 
@@ -2663,15 +2678,15 @@
 			JvCreateJavaVM(NULL);
 			JvAttachCurrentThread(NULL, NULL);
 
-			JvInitClass(&java::System::class$);
-			JvInitClass(&java::util::ArrayList::class$);
-			JvInitClass(&java::util::Iterator::class$);
-
-			JvInitClass(&itext::PdfObject::class$);
-			JvInitClass(&itext::PdfName::class$);
-			JvInitClass(&itext::PdfDictionary::class$);
-			JvInitClass(&itext::PdfOutline::class$);
-			JvInitClass(&itext::PdfBoolean::class$);
+// 			JvInitClass(&java::System::class$);
+// 			JvInitClass(&java::util::ArrayList::class$);
+// 			JvInitClass(&java::util::Iterator::class$);
+
+// 			JvInitClass(&itext::PdfObject::class$);
+// 			JvInitClass(&itext::PdfName::class$);
+// 			JvInitClass(&itext::PdfDictionary::class$);
+// 			JvInitClass(&itext::PdfOutline::class$);
+// 			JvInitClass(&itext::PdfBoolean::class$);
 
 			TK_Session tk_session( argc, argv );
 
diff -r -u /tmp/pdftk-1.41/pdftk/report.cc ./pdftk/report.cc
--- /tmp/pdftk-1.41/pdftk/report.cc	2006-09-06 00:49:32.000000000 +0100
+++ ./pdftk/report.cc	2009-02-12 15:42:56.000000000 +0000
@@ -50,8 +50,13 @@
 
 #include "com/lowagie/text/Document.h"
 #include "com/lowagie/text/Rectangle.h"
+#undef NULL
+
+// Ewww, PdfName has a field called NULL.
 #include "com/lowagie/text/pdf/PdfObject.h"
 #include "com/lowagie/text/pdf/PdfName.h"
+#define NULL __null
+
 #include "com/lowagie/text/pdf/PdfString.h"
 #include "com/lowagie/text/pdf/PdfNumber.h"
 #include "com/lowagie/text/pdf/PdfArray.h"
@@ -1315,11 +1320,12 @@
 				if( xmp_str_p ) {
 					xmp_str_p->put( itext::PdfName::TYPE, itext::PdfName::METADATA );
 					xmp_str_p->put( itext::PdfName::SUBTYPE, itext::PdfName::XML );
-			
-					itext::PdfIndirectReference* xmp_str_ref_p=
-						(itext::PdfIndirectReference*)reader_p->getPRIndirectReference( xmp_str_p );
 
-					catalog_p->put( itext::PdfName::METADATA, xmp_str_ref_p );
+//				FIXME: PdfReader.getPRIndirectReference is absent from itext-2.1.4
+// 					itext::PdfIndirectReference* xmp_str_ref_p=
+// 						(itext::PdfIndirectReference*)reader_p->getPRIndirectReference( xmp_str_p );
+
+// 					catalog_p->put( itext::PdfName::METADATA, xmp_str_ref_p );
 				}
 				else {
 					ret_val_b= false;