I have found the origin of the trouble.
In the NSView's drawRect method, where I draw the image, I use

CGContextBeginTransparencyLayer(context, NULL);
   Draw image, Draw brackground color, Draw borders, Draw Shadow
CGContextEndTransparencyLayer(context);

Then the PDF file comes out uncompressed. Wrong.

If I omit CGContextBeginTransparencyLayer/CGContextEndTransparencyLayer
I get a well compressed PDF file.

I suppose that PDF/X-3 doesn't support TransparencyLayer.
So, is a way to save the PDF file as PDF/X-4?


Regards
-- Leonardo


> Da: Gerd Knops <[email protected]>
> Data: Thu, 27 Feb 2014 20:04:13 -0600
> A: Leonardo <[email protected]>
> Oggetto: Re: Reduce PDF with QuartzFilter
> 
> What worked for me in the past was to use
> 
> QuartzFilter *myFilter=[QuartzFilter quartzFilterWithURL:[NSURL
> fileURLWithPath:filterPath]];
> 
> and use that straight in the options dictionary.
> 
> Gerd
> 
> On Feb 27, 2014, at 6:05 PM, Leonardo <[email protected]> wrote:
> 
>> In the past I successfully created and used QuartzFilter from within my
>> Cocoa app for OS X and saved pdf files. But now it seems that I am missing
>> something.
>> 
>> I have just created 2 filters with ColorSync Utility, one with
>> ImageJPEGCompress Compression Quality 1 (MinComp.qfilter) and one with
>> ImageJPEGCompress Compression Quality -1 (MaxComp.qfilter).
>> If I use them from within the application Preview, they work well.
>> I get a 146KB file and a 1.5MB file.
>> 
>> Now I use the filters from within my app, this way:
>> filePath = [myBundle pathForResource:@"MinComp" ofType:@"qfilter"];
>> filterDict = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
>> filter = [[QuartzFilterManager filterManager] importFilter:filterDict];
>> options = [NSDictionary dictionaryWithObject:filter forKey:@"QuartzFilter"];
>> saved = [pdfDoc pdfPath withOptions:options];
>> 
>> I save 2 pdf files containing the same image I used in the app Preview (see
>> above), one using the min filter, and one using the max filter
>> The 2 PDF have the same byte size: 2.3MB. And I can't found the bug.
>> 
>> I work with Xcode 5 and OS X 10.8.5. Target: OS X 10.8.
>> I have linked the libs: Quartz.framework, QuartzCore.framework,
>> AppKit.framework...
>> That's my MaxComp filter. Above it's my code. What do I miss?
>> 
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
>> "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
>> <plist version="1.0">
>> <dict>
>>    <key>Domains</key>
>>    <dict>
>>        <key>Applications</key>
>>        <true/>
>>        <key>Printing</key>
>>        <true/>
>>    </dict>
>>    <key>FilterData</key>
>>    <dict>
>>        <key>ColorSettings</key>
>>        <dict>
>>            <key>ImageSettings</key>
>>            <dict>
>>                <key>Compression Quality</key>
>>                <real>-1</real>
>>                <key>ImageCompression</key>
>>                <string>ImageJPEGCompress</string>
>>                <key>ImageScaleSettings</key>
>>                <dict>
>>                    <key>ImageResolution</key>
>>                    <integer>300</integer>
>>                    <key>ImageScaleFactor</key>
>>                    <real>0.0</real>
>>                    <key>ImageScaleInterpolate</key>
>>                    <integer>2</integer>
>>                    <key>ImageSizeMax</key>
>>                    <integer>0</integer>
>>                    <key>ImageSizeMin</key>
>>                    <integer>0</integer>
>>                </dict>
>>            </dict>
>>        </dict>
>>        <key>PDF/X-3 Settings</key>
>>        <dict>
>>            <key>AddBleedBox</key>
>>            <true/>
>>            <key>AddTrimBox</key>
>>            <true/>
>>            <key>FlattenTransparency</key>
>>            <true/>
>>            <key>FlattenTransparencyResolution</key>
>>            <array>
>>                <real>300.0</real>
>>                <real>300.0</real>
>>            </array>
>>            <key>Info</key>
>>            <string></string>
>>            <key>OutputCondition</key>
>>            <string>CGATS TR 001 SWOP</string>
>>            <key>OutputConditionIdentifier</key>
>>            <string>CGATS TR 001</string>
>>            <key>RegistryName</key>
>>            <string>http://www.color.org</string>
>>            <key>Trapped</key>
>>            <true/>
>>        </dict>
>>    </dict>
>>    <key>FilterType</key>
>>    <integer>1</integer>
>>    <key>Name</key>
>>    <string>MaxComp</string>
>> </dict>
>> </plist>
>> 
>> 
>> Regards
>> -- Leonardo
>> 
>> 
>> _______________________________________________
>> 
>> Cocoa-dev mailing list ([email protected])
>> 
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>> 
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/cocoa-dev/gerti-cocoadev%40bitart.com
>> 
>> This email sent to [email protected]
> 


_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to