how to use abcpdf in c# : Google search pdf metadata SDK application service wpf windows .net dnn TIFFPM60-part253

Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
1
DRAFT
Adobe PageMaker
®
6.0
TIFF Technical Notes
September 14, 1995
A PDF version of this specification can be found at:
http://www.adobe.com/Support/TechNotes.html
or
ftp://ftp.adobe.com/pub/adobe/DeveloperSupport/TechNotes/PDFfiles
Free Acrobat Readers (PDF viewing/printing) can be downloaded from:
http://www.adobe.com/Software/Acrobat
or
ftp://ftp.adobe.com/pub/adobe/Applications/Acrobat
Contact:
devsup-person@adobe.com.
Google search pdf metadata - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
pdf metadata viewer; pdf metadata online
Google search pdf metadata - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
extract pdf metadata; edit multiple pdf metadata
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
2
DRAFT
Copyright © 1995 by Adobe Systems Incorporated. All rights reserved.
No part of this  publication may be reproduced, stored  in a  retrieval system,  or
transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording, or otherwise, without the prior written consent of the publisher.
PostScript is a trademark of Adobe Systems Incorporated. All instances of the name
PostScript in the text are references to the PostScript language as defined by Adobe
Systems Incorporated unless otherwise stated. The name PostScript also is used as a
product trademark for Adobe Systems’ implementation of the PostScript language
interpreter.
Any references to a “PostScript printer,” a “PostScript file,” or a “PostScript driver”
refer to printers, files, and driver programs (respectively) which are written in or
support the PostScript language. The sentences in this specification that use “PostScript
language” as an adjective phrase are so constructed to reinforce that the name refers to
the standard language definition as set forth by Adobe Systems Incorporated.
PostScript, the PostScript logo, Display PostScript, Adobe, the Adobe logo, Adobe
Illustrator, Aldus, PageMaker, TIFF, OPI, TrapWise, TranScript, Carta, and Sonata are
trademarks of Adobe Systems Incorporated or its subsidiaries, and may be registered in
some jurisdictions.
Apple, LaserWriter, and Macintosh are registered trademarks and Finder and System 7
are trademarks of Apple Computer, Inc. Microsoft, MS-DOS and Windows are
registered trademarks of Microsoft Corporation. UNIX is a registered trademark of
UNIX System Laboratories, Inc., a wholly owned subsidiary of Novell, Inc. All other
trademarks are the property of their respective owners.
C# PDF url edit Library: insert, remove PDF links in C#.net, ASP.
Help to extract and search url in PDF file. Program.RootPath + "\\" Output.pdf"; // Open a PDF file. String uri = @"http://www.google.com"; // Create the
batch update pdf metadata; read pdf metadata java
VB.NET PDF url edit library: insert, remove PDF links in vb.net
Extract and search url in existing PDF file in VB Program.RootPath + "\\" Output.pdf" ' Open a PDF file. Dim uri As String = "http://www.google.com" ' Create
endnote pdf metadata; edit pdf metadata
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
3
DRAFT
Contents
TIFF Tech Note 1: TIFF Trees..............................................................4
TIFF Tech Note 2: Clipping Path.........................................................6
TIFF Tech Note 3: Indexed Images...................................................11
TIFF Tech Note 4: ICC L*a*b*............................................................13
Other Major PageMaker 6.0 TIFF changes.......................................14
PageMaker 6.0 TIFF Support Worksheet.........................................16
DocImage SDK for .NET: Document Imaging Features
of case-sensitive and whole-word-only search options. 6 (OJPEG) encoding Image only PDF encoding support. devices OCR Add-on: Support Google baseed Tesseract OCR
adding metadata to pdf files; modify pdf metadata
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
4
DRAFT
TIFF Tech Note 1: TIFF Trees
Motivation
TIFF has always supported what amounts to a singly linked list of IFD’s in a
single TIFF file, via the “next IFD pointer,” though most applications currently
ignore any IFD beyond the first one.
Probably the best use for a linked list of IFD’s is when you want to store multiple
different but related images in the same file—a ‘burst’ of images from a camera,
for example.
But suppose we want to define low-res “thumbnails” for each of the images in a
burst of images. Where should we put those?
Solution
If we had the concept of a tree within a TIFF file, we would have a natural way to
associate a main or “parent” image with a subordinate or “child” image such as a
thumbnail.
One way to create a tree structure within a TIFF file is to define a new tag, which
we will call SubIFDs. The value of the tag points to one or more “child” IFD
structures.
Use the NextIFD pointer if your application requires that multiple non-identical
images be stored in the same TIFF file—a burst of images from a camera, or a
multi-page fax transmission, for example. Use the SubIFDs tag for pointing to
ancillary images: images that modify or add information to or otherwise “help”
the Parent image. The typical examples are thumbnails and other subsampled
versions.
New Tag
SubIFDs
Tag
= 330 (14A)
Type = LONG or “IFD” (Type = 13). “IFD” is preferred.
N
= number of child IFDs
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
5
DRAFT
Each value is an offset (from the beginning of the TIFF file, as always) to a child
IFD. Child images provide extra information for the parent image—such as a
subsampled version of the parent image.
TIFF data type 13, “IFD,” is otherwise identical to LONG, but is only used to
point to other valid IFDs.
Examples
Let’s revisit our  example. We have a burst of images, plus thumbnails. The IFDs
in our file would look like this:
(SubIFD)
(SubIFD)
Main Image 1
Main Image 2
Thumbnail 1
Thumbnail 2
(NextIFD)
The SubIFDs tag is used in both Main Image 1 and Main Image 2. In each Main
image, the SubIFDs tag has one value, which points to the beginning of the IFD
structure for its Thumbnail child image.
The NextIFD value of Main Image 1 points to Main Image 2. The NextIFD value
of Main Image 2 is null.
If there is more than 1 child image for a given parent image, the NextIFD value of
Child #1 must point to Child #2, and so on. The last Child’s NextIFD value must
be zero.
This completes the TIFF Trees technical note.
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
6
DRAFT
TIFF Tech Note 2: Clipping Path
Motivation
There is currently no standard way of including a PostScript-style clipping path in
a TIFF file. The concept of image mask, which is outlined in the TIFF 6.0 specifi-
cation, can in theory accomplish the same goal, but there are a number of advan-
tages to using clipping paths.
One advantage is that a geometric clipping path can be readily implemented on
PostScript printers. In contrast, a raster-based image mask has no PostScript
equivalent. (The PostScript “imagemask” operator can only be used for making
marks in a single color.)
Another advantage is that a geometric clipping path gives sharp, clean edges. A
raster-based image mask has to be of a very high resolution (approximately the
resolution of the printer or imagesetter) in order to accomplish the same thing, and
therefore would typically take up much more space in a file, even with compres-
sion.
Implementation
ClipPath
Tag
= 343 (157.H)
Type = BYTE
N
= total number of  BYTEs in the ClipPath
A TIFF ClipPath is intended to mirror the essentials of PostScript’s path creation
functionality, so that the operators listed below can be easily translated into
PostScript, and, conversely, any PostScript path can be represented as a TIFF
ClipPath. However, the TIFF ClipPath list of operators is not identical to the cur-
rent list of PostScript operators; for simplicity, some of the PostScript variants
have been dropped, and a few operators, such as polyto and rpolyto have been
added. polyto and rpolyto were added in order to make complex TIFF polygonal
clip paths more compact.
A TIFF ClipPath is made up of a header, followed by a sequence of operators and
operands.
Header
The byte order of multi-byte operands is determined by the first 16-bit word of the
ClipPath field, which must be ‘II’ or ‘MM’. The 2nd word of ClipPath is the
ClipPath Version number, which is zero. Words 3 through 8 are reserved, and
must be zero.
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
7
DRAFT
Commands
Following the header is a sequence of operators and operands. An operator with
its operands is called a “command.” A command is made up of: OperatorID,
DataType, Length, and the operands.
OperatorID is an 8-bit unsigned value (i.e., a TIFF ‘BYTE’).
DataType is also a BYTE, and must be one of the standard TIFF data types. Only
SBYTE = DataType 6, SSHORT = 8, and SLONG = 9 should be used at this time.
Next comes an 8-bit reserved byte, which must be zero.
Length comes next, a BYTE which gives the number of 
bytes (
not number of
SBYTEs, SSHORTs, or SLONGs) used by the operands. Note that this is differ-
ent from the rule used in TIFF IFDs. For example, if the operands for a command
consist of  2 SLONGs, Length is 8, not 2.
The Length field is followed by the operands, which are usually absolute or rela-
tive coordinates.
The next command begins immediately after the last operand of the previous
command.
Commands need not begin on even-byte boundaries.
The operators are taken from the following list:
OperatorID
operands
name of operator
0
ignored. no operation is performed.
1
newpath
2
closepath
3
x y
moveto
4
x y
lineto
5
(reserved)
6
(reserved)
7
(reserved)
8
x1 y1  x2 y2  x3 y3
curveto
9
x1 y1  x2 y2…
polyto
10
dx1 dy1  dx2 dy2…
rpolyto
11-255
(reserved)
The operators, in general
Unless otherwise noted, TIFF ClipPath operators have the same path construction
effect as their PostScript counterparts.  See the Adobe “Red Book” (PostScript
Language Reference Manual) for details.
newpath, closepath
The first operator in a TIFF ClipPath must be 
newpath
; the last must be
closepath
newpath 
and 
closepath 
have no operands, so their Length will be
zero, and their DataType is ignored.
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
8
DRAFT
Subpaths can be created by using 
closepath
, followed by 
moveto
and other path
creation commands.
newpath
erases all subpaths of the current path, so the only call to 
newpath
should be the first command. Additional calls to 
newpath
within a TIFF ClipPath
are illegal.
moveto, lineto
moveto
and 
lineto
each have two operands.
Coordinates for 
moveto
and lineto  are absolute. 
lineto
draws starting from the
current point.
The first command after 
newpath
must be 
moveto
, since the other commands
depend on having a valid currentpoint.
curveto
curveto
has six operands. Like the other commands listed above, 
curveto
is de-
fined as it is in the PostScript Language Reference Manual, and describes a cubic
Bezier arc.
polyto, rpolyto
Coordinates for 
polyto
are absolute. Coordinates for 
rpolyto
are relative to the
previous coordinate pair. The current point is the first point of a polyline path
segment created by 
polyto
or 
rpolyto
polyto
and 
rpolyto
set the current point to
the last point of the polyline.
Example: draw a square path whose upper left corner is (100,100), and lower right
corner is (300, 300), using polyto:
moveto  100 100
polyto  300 100    300 300    100 300
closepath
Example: same, using 
rpolyto
:
moveto    100 100
rpolyto   200 0    0 200    -200 0
closepath
polyto
is not a PostScript operator, but is readily translated into multiple 
lineto
PostScript commands. 
rpolyto
is not a PostScript operator, but is readily trans-
lated into multiple 
rlineto
PostScript commands.
coordinate system
The origin of the coordinate system for ClipPath is the upper left corner of the
image. The coordinates are signed integers (SBYTE, SSHORT, or SLONG). X
coordinates increase left-to-right, and Y coordinates increase top-to-bottom.
(Note that this is 
not the same as default PostScript user space.)
The dimension of a coordinate represents the numerator of the fraction: numerator
/ XClipPathUnits, where a fraction of one (1.0) represents the width and height of
the image. See the XClipPathUnits field description, below. So, for example, if
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
9
DRAFT
XClipPathUnits = 1000, a clipping path that surrounds the entire image is given
by:
% start the path
newpath
% initial point is the upper left corner
moveto  0  0
% then go to the upper right, then lower right, then lower left
polyto   1000 0   1000 1000    0 1000
% close the path, connecting the lower left and upper left corners
closepath
Some or all ClipPath coordinates may lie outside the bounds of the image. This
may be useful when clipping to certain shapes. This factor should be taken into
account when choosing an appropriate value for XClipPathUnits, otherwise the
units could overflow.
This coordinate system was chosen because it is quite compact, does not require
floating point data storage and conversion, and the ClipPath does not have to be
changed if the image is upsampled or downsampled—even if it is resampled dif-
ferently in each axis.
Insidedness
For complex clippaths (e.g., a path that intersects itself or has one subpath that
encloses another), the interpretation of “inside” is determined by the even-odd
rule. This rule determines the ‘insidedness’ of a point by drawing a ray from that
point in any direction and counting the number of path segments that the ray
crosses.  If this number is odd, the point is inside; if even, the point is outside.
The even-odd fill rule was chosen for compatibility with Apple QuickDraw, Adobe
Photoshop and Microsoft Windows.
XClipPathUnits
Tag
= 344 (158.H)
Type = DWORD
N
= 1
The number of units that span the width of the image, in terms of integer ClipPath
coordinates.
All horizontal ClipPath coordinates will be divided by this value in order to get a
number that is (usually) between 0.0 and 1.0, where 0.0 represents the left side of
the image and 1.0 represents the right side of the image.
Note that the choice of value for XClipPathUnits will influence the choice of
DataType for the commands, since SSHORT or even SBYTE values may be
usable if XClipPathUnits is smaller, while SLONG will be required if
XClipPathUnits is larger.
Required for every TIFF ClipPath. No default.
Adobe PageMaker
®
6.0 TIFF Technical Notes
Draft - September 14, 1995
10
DRAFT
YClipPathUnits
Tag
= 345 (159.H)
Type = DWORD
N
= 1
The number of units that span the height of the image, in terms of integer ClipPath
coordinates.
All vertical ClipPath coordinates will be divided by this value in order to get a
number that is (usually) between 0.0 and 1.0, where 0.0 represents the top of the
image and 1.0 represents the bottom of the image.
Use this if you want to be able to specify your ClipPath coordinates using integer
values that match the aspect ratio of an image.
Optional. Default is YClipPathUnits = XClipPathUnits.
This completes the TIFF Clipping Path technical note.
Documents you may be interested
Documents you may be interested