]> granicus.if.org Git - imagemagick/blobdiff - coders/pdf.c
(no commit message)
[imagemagick] / coders / pdf.c
index adee5307fb32098a169d24e9c379d8dd1d9a1f03..61535ba72488428cee3f045e47d15a2514b47c6c 100644 (file)
@@ -182,6 +182,8 @@ static MagickBooleanType InvokePDFDelegate(const MagickBooleanType verbose,
     }
   code=0;
   argv=StringToArgv(command,&argc);
+  if (argv == (char **) NULL)
+    return(MagickFalse);
   status=(ghost_info->init_with_args)(interpreter,argc-1,argv+1);
   if (status == 0)
     status=(ghost_info->run_string)(interpreter,"systemdict /start get exec\n",
@@ -606,7 +608,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
     image->resolution.y);
   if (image_info->page != (char *) NULL)
     (void) FormatLocaleString(options,MaxTextExtent,"-g%.20gx%.20g ",(double)
-       page.width,(double) page.height);
+      page.width,(double) page.height);
   if (cmyk != MagickFalse)
     (void) ConcatenateMagickString(options,"-dUseCIEColor ",MaxTextExtent);
   if (cropbox != MagickFalse)
@@ -634,6 +636,7 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
       " -sPCLPassword=%s",option);
   (void) CopyMagickString(filename,read_info->filename,MaxTextExtent);
   (void) AcquireUniqueFilename(filename);
+  (void) ConcatenateMagickString(filename,"%d",MaxTextExtent);
   (void) FormatLocaleString(command,MaxTextExtent,
     GetDelegateCommands(delegate_info),
     read_info->antialias != MagickFalse ? 4 : 1,
@@ -759,7 +762,6 @@ ModuleExport size_t RegisterPDFImage(void)
   entry->adjoin=MagickFalse;
   entry->blob_support=MagickFalse;
   entry->seekable_stream=MagickTrue;
-  entry->thread_support=EncoderThreadSupport;
   entry->description=ConstantString("Adobe Illustrator CS2");
   entry->module=ConstantString("PDF");
   (void) RegisterMagickInfo(entry);
@@ -769,7 +771,6 @@ ModuleExport size_t RegisterPDFImage(void)
   entry->adjoin=MagickFalse;
   entry->blob_support=MagickFalse;
   entry->seekable_stream=MagickTrue;
-  entry->thread_support=EncoderThreadSupport;
   entry->description=ConstantString("Encapsulated Portable Document Format");
   entry->module=ConstantString("PDF");
   (void) RegisterMagickInfo(entry);
@@ -779,7 +780,6 @@ ModuleExport size_t RegisterPDFImage(void)
   entry->magick=(IsImageFormatHandler *) IsPDF;
   entry->blob_support=MagickFalse;
   entry->seekable_stream=MagickTrue;
-  entry->thread_support=EncoderThreadSupport;
   entry->description=ConstantString("Portable Document Format");
   entry->module=ConstantString("PDF");
   (void) RegisterMagickInfo(entry);
@@ -789,7 +789,6 @@ ModuleExport size_t RegisterPDFImage(void)
   entry->magick=(IsImageFormatHandler *) IsPDF;
   entry->blob_support=MagickFalse;
   entry->seekable_stream=MagickTrue;
-  entry->thread_support=EncoderThreadSupport;
   entry->description=ConstantString("Portable Document Archive Format");
   entry->module=ConstantString("PDF");
   (void) RegisterMagickInfo(entry);
@@ -2335,8 +2334,10 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
       object);
     (void) WriteBlobString(image,buffer);
     (void) WriteBlobString(image,"<<\n");
-    if ((image->storage_class != DirectClass) && (image->colors <= 256) &&
-        (compression != FaxCompression) && (compression != Group4Compression))
+    if ((image->storage_class == DirectClass) || (image->colors > 256) ||
+        (compression == FaxCompression) || (compression == Group4Compression))
+      (void) WriteBlobString(image,">>\n");
+    else
       {
         /*
           Write Colormap object.
@@ -2372,7 +2373,6 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
        offset=TellBlob(image)-offset;
        (void) WriteBlobString(image,"\nendstream\n");
       }
-    (void) WriteBlobString(image,">>\n");
     (void) WriteBlobString(image,"endobj\n");
     /*
       Write Length object.