PDFCOMPOPTIONS

typedef struct _PDFCOMPOPTIONS
{
   L_UINT uStructSize; 
   L_UINT32 dwFlags;
   PDFCOMP_IMAGEQUALITY imageQuality; 
   PDFCOMP_OUTPUTQUALITY outputQuality; 
   L_UINT uCleanSize;
   L_UINT uBackGroundThreshold;
   L_UINT uCombineThreshold;
   L_UINT uSegmentQuality;
   L_UINT uColorThreshold; 

} PDFCOMPOPTIONS, L_FAR  * LPPDFCOMPOPTIONS;

The PDFCOMPOPTIONS structure provides information about PDF Compressor options.

Member

Description

uStructSize

Size of this structure in bytes, for versioning. Use the sizeof() macro to calculate this value.

dwFlags

Flag that indicates the PDF Compressor options behavior. Possible values are:

 

Value

Meaning

 

PDFCOMP_FAVOR_ONEBIT

[0x00] Favor the detection of 1-bit segments.

 

PDFCOMP_FAVOR_TWOBIT

[0x01] Favor the detection of 2-bit segments.

 

PDFCOMP_FORCE_ONEBIT

[0x02] Force all 2-bit segments to be 1-bit.

 

PDFCOMP_FORCE_TWOBIT

[0x03] Force all 1-bit segments to be 2-bit.

 

PDFCOMP_WITH_BACKGROUND

[0x00] Detect background segments.

 

PDFCOMP_WITHOUT_BACKGROUND

[0x10] Don’t detect background segments.

 

imageQuality

Value that indicates the bitmap's quality before processing. Possible values are:

 

Value

Meaning

 

PDFCOMP_IMAGEQUALITY_UNKNOWN

[0] Unknown image quality. Use default handling.

 

PDFCOMP_IMAGEQUALITY_NOISY

[1] The source image is noisy.

 

PDFCOMP_IMAGEQUALITY_SCANNED

[2] The source image is a scanned image.

 

PDFCOMP_IMAGEQUALITY_PRINTED

[3] The source image is a printed document.

 

PDFCOMP_IMAGEQUALITY_COMPUTER_GENERATED

[4] The source image is a high quality computer-generated image.

 

PDFCOMP_IMAGEQUALITY_PHOTO

[5] The source image is a high quality photo image; for example, from a digital camera .

 

PDFCOMP_IMAGEQUALITY_USER

[6] The quality is set manually. This flag is for advanced users.

 

outputQuality

Value that indicates the image's output quality. Possible values are:

 

Value

Meaning

 

PDFCOMP_OUTPUTQUALITY_AUTO

[0] Choose the quality of the output automatically.

 

PDFCOMP_OUTPUTQUALITY_POOR

[1] Poor output quality with best compression.

 

PDFCOMP_OUTPUTQUALITY_AVERAGE

[2] Average output quality with average compression.

 

PDFCOMP_OUTPUTQUALITY_GOOD

[3] Good output quality with good compression.

 

PDFCOMP_OUTPUTQUALITY_EXCELLENT

[4] Excellent output quality with poor compression.

 

PDFCOMP_OUTPUTQUALITY_USER

[5] The user detects the output quality. This flag is for advanced users.

uCleanSize

Value that indicates the size of the area used to remove the noise inside the segmented image. Possible values range from 0 to 10, where 0 means skip the cleaning stage.

uBackGroundThreshold

Threshold value used to separate image objects from the background. Best values are from 5 to 35.

uCombineThreshold

Threshold value used to combine colors. Colors that are closer together than this amount will be combined. The best value is 25. Values saturate at 443.

uSegmentQuality

Threshold value used to determine whether the segment is a picture segment. Possible values range from 0 to 100. Use 0 to set all possible picture segments to 2-bit without losing a lot of information. Use 100 to set all picture segments to 2-bit only if they are very close to 2-bit.

uColorThreshold

Threshold value used to merge segments. Best values are from 75 to 125.

Comments

LPPDFCOMPOPTIONS is a pointer to a PDFCOMPOPTIONS structure. Where a function parameter type is LPPDFCOMPOPTIONS, declare a PDFCOMPOPTIONS variable and pass the variable's address in the parameter. Declaring an LPPDFCOMPOPTIONS variable is necessary only if the program requires a pointer.

The values of uCleanSize, uBackGroundThreshold and uCombineThreshold are valid only if the imageQuality is set to PDFCOMP_IMAGEQUALITY_USER flag.

The values of uSegmentQuality and uColorThreshold are valid only if the outputQuality is set to PDFCOMP_OUTPUTQUALITY_USER flag.

This structure is used with the LPDFCompressor::InsertMRC function.