make sure comments begin with a type/function name

This commit is contained in:
Denys Smirnov 2018-12-09 20:22:33 +02:00
parent e286eecac9
commit 6d2c39043c
33 changed files with 200 additions and 214 deletions

View File

@ -14,7 +14,7 @@ import (
// Defaults to the open source license.
var licenseKey = MakeUnlicensedKey()
// Sets and validates the license key.
// SetLicenseKey sets and validates the license key.
func SetLicenseKey(content string, customerName string) error {
lk, err := licenseKeyDecode(content)
if err != nil {

View File

@ -21,7 +21,7 @@ type Logger interface {
Trace(format string, args ...interface{})
}
// Dummy Logger does nothing.
// DummyLogger does nothing.
type DummyLogger struct{}
func (this DummyLogger) Error(format string, args ...interface{}) {
@ -42,7 +42,7 @@ func (this DummyLogger) Debug(format string, args ...interface{}) {
func (this DummyLogger) Trace(format string, args ...interface{}) {
}
// Simple Console Logger that the tests use.
// LogLevel is the verbosity level for logging.
type LogLevel int
const (

View File

@ -16,7 +16,7 @@ const releaseDay = 14
const releaseHour = 19
const releaseMin = 40
// Holds version information, when bumping this make sure to bump the released at stamp also.
// Version holds version information, when bumping this make sure to bump the released at stamp also.
const Version = "2.1.1"
var ReleasedAt = time.Date(releaseYear, releaseMonth, releaseDay, releaseHour, releaseMin, 0, 0, time.UTC)

2
doc.go
View File

@ -3,7 +3,7 @@
* file 'LICENSE.md', which is part of this source code package.
*/
// UniDoc is a comprehensive PDF library for Go (golang). The library has advanced capabilities for generating,
// Package unidoc is a comprehensive PDF library for Go (golang). The library has advanced capabilities for generating,
// processing and modifying PDFs. UniDoc is written and supported by the owners of the
// FoxyUtils.com website, where the library is used to power many of the PDF services offered.
//

View File

@ -26,7 +26,8 @@ type CircleAnnotationDef struct {
Opacity float64 // Alpha value (0-1).
}
// Creates a circle/ellipse annotation object with appearance stream that can be added to page PDF annotations.
// CreateCircleAnnotation creates a circle/ellipse annotation object with appearance stream that can be added to
// page PDF annotations.
func CreateCircleAnnotation(circDef CircleAnnotationDef) (*pdf.PdfAnnotation, error) {
circAnnotation := pdf.NewPdfAnnotationCircle()

View File

@ -12,8 +12,8 @@ import (
pdf "github.com/unidoc/unidoc/pdf/model"
)
// Defines a line between point 1 (X1,Y1) and point 2 (X2,Y2). The line ending styles can be none (regular line),
// or arrows at either end. The line also has a specified width, color and opacity.
// LineAnnotationDef defines a line between point 1 (X1,Y1) and point 2 (X2,Y2). The line ending styles can be none
// (regular line), or arrows at either end. The line also has a specified width, color and opacity.
type LineAnnotationDef struct {
X1 float64
Y1 float64
@ -26,7 +26,7 @@ type LineAnnotationDef struct {
LineEndingStyle2 draw.LineEndingStyle // Line ending style of point 2.
}
// Creates a line annotation object that can be added to page PDF annotations.
// CreateLineAnnotation creates a line annotation object that can be added to page PDF annotations.
func CreateLineAnnotation(lineDef LineAnnotationDef) (*pdf.PdfAnnotation, error) {
// Line annotation.
lineAnnotation := pdf.NewPdfAnnotationLine()

View File

@ -13,8 +13,8 @@ import (
pdf "github.com/unidoc/unidoc/pdf/model"
)
// A rectangle defined with a specified Width and Height and a lower left corner at (X,Y). The rectangle can
// optionally have a border and a filling color.
// RectangleAnnotationDef is a rectangle defined with a specified Width and Height and a lower left corner at (X,Y).
// The rectangle can optionally have a border and a filling color.
// The Width/Height includes the border (if any specified).
type RectangleAnnotationDef struct {
X float64
@ -29,7 +29,7 @@ type RectangleAnnotationDef struct {
Opacity float64 // Alpha value (0-1).
}
// Creates a rectangle annotation object that can be added to page PDF annotations.
// CreateRectangleAnnotation creates a rectangle annotation object that can be added to page PDF annotations.
func CreateRectangleAnnotation(rectDef RectangleAnnotationDef) (*pdf.PdfAnnotation, error) {
rectAnnotation := pdf.NewPdfAnnotationSquare()

View File

@ -11,7 +11,7 @@ import (
"github.com/unidoc/unidoc/pdf/model"
)
// Cubic bezier curves are defined by:
// CubicBezierCurve is defined by:
// R(t) = P0*(1-t)^3 + P1*3*t*(1-t)^2 + P2*3*t^2*(1-t) + P3*t^3
// where P0 is the current point, P1, P2 control points and P3 the final point.
type CubicBezierCurve struct {
@ -30,7 +30,7 @@ func NewCubicBezierCurve(x0, y0, x1, y1, x2, y2, x3, y3 float64) CubicBezierCurv
return curve
}
// Add X,Y offset to all points on a curve.
// AddOffsetXY adds X,Y offset to all points on a curve.
func (curve CubicBezierCurve) AddOffsetXY(offX, offY float64) CubicBezierCurve {
curve.P0.X += offX
curve.P1.X += offX

View File

@ -5,7 +5,7 @@
package draw
// A path consists of straight line connections between each point defined in an array of points.
// Path consists of straight line connections between each point defined in an array of points.
type Path struct {
Points []Point
}

View File

@ -25,7 +25,7 @@ func (p Point) Add(dx, dy float64) Point {
return p
}
// Add vector to a point.
// AddVector adds vector to a point.
func (this Point) AddVector(v Vector) Point {
this.X += v.Dx
this.Y += v.Dy

View File

@ -4,7 +4,7 @@ import (
pdfcontent "github.com/unidoc/unidoc/pdf/contentstream"
)
// Make the path with the content creator.
// DrawPathWithCreator makes the path with the content creator.
// Adds the PDF commands to draw the path to the creator instance.
func DrawPathWithCreator(path Path, creator *pdfcontent.ContentCreator) {
for idx, p := range path.Points {
@ -16,7 +16,7 @@ func DrawPathWithCreator(path Path, creator *pdfcontent.ContentCreator) {
}
}
// Make the bezier path with the content creator.
// DrawBezierPathWithCreator makes the bezier path with the content creator.
// Adds the PDF commands to draw the path to the creator instance.
func DrawBezierPathWithCreator(bpath CubicBezierPath, creator *pdfcontent.ContentCreator) {
for idx, c := range bpath.Curves {

View File

@ -47,7 +47,7 @@ func (v Vector) Rotate(phi float64) Vector {
return NewVectorPolar(mag, angle+phi)
}
// Change the sign of the vector: -vector.
// Flip changes the sign of the vector: -vector.
func (this Vector) Flip() Vector {
mag := this.Magnitude()
theta := this.GetPolarAngle()

View File

@ -15,7 +15,7 @@ import (
"github.com/unidoc/unidoc/pdf/model"
)
// A representation of an inline image in a Content stream. Everything between the BI and EI operands.
// ContentStreamInlineImage is a representation of an inline image in a Content stream. Everything between the BI and EI operands.
// ContentStreamInlineImage implements the core.PdfObject interface although strictly it is not a PDF object.
type ContentStreamInlineImage struct {
BitsPerComponent core.PdfObject
@ -31,7 +31,7 @@ type ContentStreamInlineImage struct {
stream []byte
}
// Make a new content stream inline image object from an image.
// NewInlineImageFromImage makes a new content stream inline image object from an image.
func NewInlineImageFromImage(img model.Image, encoder core.StreamEncoder) (*ContentStreamInlineImage, error) {
if encoder == nil {
encoder = core.NewRawEncoder()
@ -198,7 +198,7 @@ func (img *ContentStreamInlineImage) GetEncoder() (core.StreamEncoder, error) {
return newEncoderFromInlineImage(img)
}
// Is a mask ?
// IsMask check if an image is a mask.
// The image mask entry in the image dictionary specifies that the image data shall be used as a stencil
// mask for painting in the current color. The mask data is 1bpc, grayscale.
func (img *ContentStreamInlineImage) IsMask() (bool, error) {
@ -216,7 +216,7 @@ func (img *ContentStreamInlineImage) IsMask() (bool, error) {
}
// Export the inline image to Image which can be transformed or exported easily.
// ToImage export the inline image to Image which can be transformed or exported easily.
// Page resources are needed to look up colorspace information.
func (img *ContentStreamInlineImage) ToImage(resources *model.PdfPageResources) (*model.Image, error) {
// Decode the imaging data if encoded.
@ -297,7 +297,7 @@ func (img *ContentStreamInlineImage) ToImage(resources *model.PdfPageResources)
return image, nil
}
// Parse an inline image from a content stream, both read its properties and binary data.
// ParseInlineImage parses an inline image from a content stream, both read its properties and binary data.
// When called, "BI" has already been read from the stream. This function
// finishes reading through "EI" and then returns the ContentStreamInlineImage.
func (csp *ContentStreamParser) ParseInlineImage() (*ContentStreamInlineImage, error) {

View File

@ -13,7 +13,7 @@ import (
"github.com/unidoc/unidoc/pdf/model"
)
// Basic graphics state implementation.
// GraphicsState is a basic graphics state implementation.
// Initially only implementing and tracking a portion of the information specified. Easy to add more.
type GraphicsState struct {
ColorspaceStroking model.PdfColorspace

View File

@ -63,7 +63,7 @@ type StreamEncoder interface {
DecodeStream(streamObj *PdfObjectStream) ([]byte, error)
}
// Flate encoding.
// FlateEncoder represents Flate encoding.
type FlateEncoder struct {
Predictor int
BitsPerComponent int
@ -72,7 +72,7 @@ type FlateEncoder struct {
Colors int
}
// Make a new flate encoder with default parameters, predictor 1 and bits per component 8.
// NewFlateEncoder makes a new flate encoder with default parameters, predictor 1 and bits per component 8.
func NewFlateEncoder() *FlateEncoder {
encoder := &FlateEncoder{}
@ -88,7 +88,7 @@ func NewFlateEncoder() *FlateEncoder {
return encoder
}
// Set the predictor function. Specify the number of columns per row.
// SetPredictor sets the predictor function. Specify the number of columns per row.
// The columns indicates the number of samples per row.
// Used for grouping data together for compression.
func (this *FlateEncoder) SetPredictor(columns int) {
@ -122,7 +122,7 @@ func (this *FlateEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
// Has the Filter set and the DecodeParms.
func (this *FlateEncoder) MakeStreamDict() *PdfObjectDictionary {
dict := MakeDict()
@ -246,7 +246,7 @@ func (this *FlateEncoder) DecodeBytes(encoded []byte) ([]byte, error) {
return outBuf.Bytes(), nil
}
// Decode a FlateEncoded stream object and give back decoded bytes.
// DecodeStream decodes a FlateEncoded stream object and give back decoded bytes.
func (this *FlateEncoder) DecodeStream(streamObj *PdfObjectStream) ([]byte, error) {
// TODO: Handle more filter bytes and support more values of BitsPerComponent.
@ -398,7 +398,7 @@ func (this *FlateEncoder) DecodeStream(streamObj *PdfObjectStream) ([]byte, erro
return outData, nil
}
// Encode a bytes array and return the encoded value based on the encoder parameters.
// EncodeBytes encodes a bytes array and return the encoded value based on the encoder parameters.
func (this *FlateEncoder) EncodeBytes(data []byte) ([]byte, error) {
if this.Predictor != 1 && this.Predictor != 11 {
common.Log.Debug("Encoding error: FlateEncoder Predictor = 1, 11 only supported")
@ -445,7 +445,7 @@ func (this *FlateEncoder) EncodeBytes(data []byte) ([]byte, error) {
return b.Bytes(), nil
}
// LZW encoding/decoding functionality.
// LZWEncoder provides LZW encoding/decoding functionality.
type LZWEncoder struct {
Predictor int
BitsPerComponent int
@ -456,7 +456,7 @@ type LZWEncoder struct {
EarlyChange int
}
// Make a new LZW encoder with default parameters.
// NewLZWEncoder makes a new LZW encoder with default parameters.
func NewLZWEncoder() *LZWEncoder {
encoder := &LZWEncoder{}
@ -497,7 +497,7 @@ func (this *LZWEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
// Has the Filter set and the DecodeParms.
func (this *LZWEncoder) MakeStreamDict() *PdfObjectDictionary {
dict := MakeDict()
@ -770,7 +770,7 @@ func (this *LZWEncoder) DecodeStream(streamObj *PdfObjectStream) ([]byte, error)
return outData, nil
}
// Support for encoding LZW. Currently not supporting predictors (raw compressed data only).
// EncodeBytes implements support for LZW encoding. Currently not supporting predictors (raw compressed data only).
// Only supports the Early change = 1 algorithm (compress/lzw) as the other implementation
// does not have a write method.
// TODO: Consider refactoring compress/lzw to allow both.
@ -791,8 +791,7 @@ func (this *LZWEncoder) EncodeBytes(data []byte) ([]byte, error) {
return b.Bytes(), nil
}
//
// DCT (JPG) encoding/decoding functionality for images.
// DCTEncoder provides a DCT (JPG) encoding/decoding functionality for images.
type DCTEncoder struct {
ColorComponents int // 1 (gray), 3 (rgb), 4 (cmyk)
BitsPerComponent int // 8 or 16 bit
@ -801,7 +800,7 @@ type DCTEncoder struct {
Quality int
}
// Make a new DCT encoder with default parameters.
// NewDCTEncoder makes a new DCT encoder with default parameters.
func NewDCTEncoder() *DCTEncoder {
encoder := &DCTEncoder{}
@ -822,7 +821,7 @@ func (this *DCTEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
// Has the Filter set. Some other parameters are generated elsewhere.
func (this *DCTEncoder) MakeStreamDict() *PdfObjectDictionary {
dict := MakeDict()
@ -1102,11 +1101,11 @@ func (this *DCTEncoder) EncodeBytes(data []byte) ([]byte, error) {
return buf.Bytes(), nil
}
// Run length encoding.
// RunLengthEncoder represents Run length encoding.
type RunLengthEncoder struct {
}
// Make a new run length encoder
// NewRunLengthEncoder makes a new run length encoder
func NewRunLengthEncoder() *RunLengthEncoder {
return &RunLengthEncoder{}
}
@ -1117,19 +1116,20 @@ func (this *RunLengthEncoder) GetFilterName() string {
// Create a new run length decoder from a stream object.
func newRunLengthEncoderFromStream(streamObj *PdfObjectStream, decodeParams *PdfObjectDictionary) (*RunLengthEncoder, error) {
// TODO(dennwc): unused paramaters
// TODO(dennwc): unused paramaters; should verify that they are empty?
return NewRunLengthEncoder(), nil
}
/*
7.4.5 RunLengthDecode Filter
The RunLengthDecode filter decodes data that has been encoded in a simple byte-oriented format based on run length.
The encoded data shall be a sequence of runs, where each run shall consist of a length byte followed by 1 to 128
bytes of data. If the length byte is in the range 0 to 127, the following length + 1 (1 to 128) bytes shall be
copied literally during decompression. If length is in the range 129 to 255, the following single byte shall be
copied 257 - length (2 to 128) times during decompression. A length value of 128 shall denote EOD.
*/
// DecodeBytes decodes a byte slice from Run length encoding.
//
// 7.4.5 RunLengthDecode Filter
// The RunLengthDecode filter decodes data that has been encoded in a simple byte-oriented format based on run length.
// The encoded data shall be a sequence of runs, where each run shall consist of a length byte followed by 1 to 128
// bytes of data. If the length byte is in the range 0 to 127, the following length + 1 (1 to 128) bytes shall be
// copied literally during decompression. If length is in the range 129 to 255, the following single byte shall be
// copied 257 - length (2 to 128) times during decompression. A length value of 128 shall denote EOD.
func (this *RunLengthEncoder) DecodeBytes(encoded []byte) ([]byte, error) {
// TODO(dennwc): use encoded slice directly, instead of wrapping it into a Reader
bufReader := bytes.NewReader(encoded)
var inb []byte
for {
@ -1161,12 +1161,12 @@ func (this *RunLengthEncoder) DecodeBytes(encoded []byte) ([]byte, error) {
return inb, nil
}
// Decode RunLengthEncoded stream object and give back decoded bytes.
// DecodeStream decodes RunLengthEncoded stream object and give back decoded bytes.
func (this *RunLengthEncoder) DecodeStream(streamObj *PdfObjectStream) ([]byte, error) {
return this.DecodeBytes(streamObj.Stream)
}
// Encode a bytes array and return the encoded value based on the encoder parameters.
// EncodeBytes encodes a bytes array and return the encoded value based on the encoder parameters.
func (this *RunLengthEncoder) EncodeBytes(data []byte) ([]byte, error) {
bufReader := bytes.NewReader(data)
var inb []byte
@ -1238,19 +1238,18 @@ func (this *RunLengthEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
func (this *RunLengthEncoder) MakeStreamDict() *PdfObjectDictionary {
dict := MakeDict()
dict.Set("Filter", MakeName(this.GetFilterName()))
return dict
}
/////
// ASCII hex encoder/decoder.
// ASCIIHexEncoder implements ASCII hex encoder/decoder.
type ASCIIHexEncoder struct {
}
// Make a new ASCII hex encoder.
// NewASCIIHexEncoder makes a new ASCII hex encoder.
func NewASCIIHexEncoder() *ASCIIHexEncoder {
encoder := &ASCIIHexEncoder{}
return encoder
@ -1264,7 +1263,7 @@ func (this *ASCIIHexEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
func (this *ASCIIHexEncoder) MakeStreamDict() *PdfObjectDictionary {
dict := MakeDict()
dict.Set("Filter", MakeName(this.GetFilterName()))
@ -1304,7 +1303,7 @@ func (this *ASCIIHexEncoder) DecodeBytes(encoded []byte) ([]byte, error) {
return outb, nil
}
// ASCII hex decoding.
// DecodeStream implements ASCII hex decoding.
func (this *ASCIIHexEncoder) DecodeStream(streamObj *PdfObjectStream) ([]byte, error) {
return this.DecodeBytes(streamObj.Stream)
}
@ -1320,13 +1319,11 @@ func (this *ASCIIHexEncoder) EncodeBytes(data []byte) ([]byte, error) {
return encoded.Bytes(), nil
}
//
// ASCII85 encoder/decoder.
//
// ASCII85Encoder implements ASCII85 encoder/decoder.
type ASCII85Encoder struct {
}
// Make a new ASCII85 encoder.
// NewASCII85Encoder makes a new ASCII85 encoder.
func NewASCII85Encoder() *ASCII85Encoder {
encoder := &ASCII85Encoder{}
return encoder
@ -1340,14 +1337,14 @@ func (this *ASCII85Encoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict make a new instance of an encoding dictionary for a stream object.
func (this *ASCII85Encoder) MakeStreamDict() *PdfObjectDictionary {
dict := MakeDict()
dict.Set("Filter", MakeName(this.GetFilterName()))
return dict
}
// 5 ASCII characters -> 4 raw binary bytes
// DecodeBytes decodes byte array with ASCII85. 5 ASCII characters -> 4 raw binary bytes
func (this *ASCII85Encoder) DecodeBytes(encoded []byte) ([]byte, error) {
var decoded []byte
@ -1425,7 +1422,7 @@ func (this *ASCII85Encoder) DecodeBytes(encoded []byte) ([]byte, error) {
return decoded, nil
}
// ASCII85 stream decoding.
// DecodeStream implements ASCII85 stream decoding.
func (this *ASCII85Encoder) DecodeStream(streamObj *PdfObjectStream) ([]byte, error) {
return this.DecodeBytes(streamObj.Stream)
}
@ -1449,7 +1446,7 @@ func (this *ASCII85Encoder) base256Tobase85(base256val uint32) [5]byte {
return base85
}
// Encode data into ASCII85 encoded format.
// EncodeBytes encodes data into ASCII85 encoded format.
func (this *ASCII85Encoder) EncodeBytes(data []byte) ([]byte, error) {
var encoded bytes.Buffer
@ -1492,9 +1489,7 @@ func (this *ASCII85Encoder) EncodeBytes(data []byte) ([]byte, error) {
return encoded.Bytes(), nil
}
//
// Raw encoder/decoder (no encoding, pass through)
//
// RawEncoder implements Raw encoder/decoder (no encoding, pass through)
type RawEncoder struct{}
func NewRawEncoder() *RawEncoder {
@ -1509,7 +1504,7 @@ func (this *RawEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
func (this *RawEncoder) MakeStreamDict() *PdfObjectDictionary {
return MakeDict()
}
@ -1526,9 +1521,8 @@ func (this *RawEncoder) EncodeBytes(data []byte) ([]byte, error) {
return data, nil
}
//
// CCITTFax encoder/decoder (dummy, for now)
//
// CCITTFaxEncoder implements CCITTFax encoder/decoder (dummy, for now)
// FIXME: implement
type CCITTFaxEncoder struct{}
func NewCCITTFaxEncoder() *CCITTFaxEncoder {
@ -1543,7 +1537,7 @@ func (this *CCITTFaxEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
func (this *CCITTFaxEncoder) MakeStreamDict() *PdfObjectDictionary {
return MakeDict()
}
@ -1563,9 +1557,8 @@ func (this *CCITTFaxEncoder) EncodeBytes(data []byte) ([]byte, error) {
return data, ErrNoCCITTFaxDecode
}
//
// JBIG2 encoder/decoder (dummy, for now)
//
// JBIG2Encoder implements JBIG2 encoder/decoder (dummy, for now)
// FIXME: implement
type JBIG2Encoder struct{}
func NewJBIG2Encoder() *JBIG2Encoder {
@ -1580,7 +1573,7 @@ func (this *JBIG2Encoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
func (this *JBIG2Encoder) MakeStreamDict() *PdfObjectDictionary {
return MakeDict()
}
@ -1600,9 +1593,8 @@ func (this *JBIG2Encoder) EncodeBytes(data []byte) ([]byte, error) {
return data, ErrNoJBIG2Decode
}
//
// JPX encoder/decoder (dummy, for now)
//
// JPXEncoder implements JPX encoder/decoder (dummy, for now)
// FIXME: implement
type JPXEncoder struct{}
func NewJPXEncoder() *JPXEncoder {
@ -1617,7 +1609,7 @@ func (this *JPXEncoder) MakeDecodeParams() PdfObject {
return nil
}
// Make a new instance of an encoding dictionary for a stream object.
// MakeStreamDict makes a new instance of an encoding dictionary for a stream object.
func (this *JPXEncoder) MakeStreamDict() *PdfObjectDictionary {
return MakeDict()
}
@ -1637,9 +1629,7 @@ func (this *JPXEncoder) EncodeBytes(data []byte) ([]byte, error) {
return data, ErrNoJPXDecode
}
//
// Multi encoder: support serial encoding.
//
// MultiEncoder supports serial encoding.
type MultiEncoder struct {
// Encoders in the order that they are to be applied.
encoders []StreamEncoder

View File

@ -589,7 +589,7 @@ func (parser *PdfParser) parseObject() (PdfObject, error) {
}
}
// Reads and parses a PDF dictionary object enclosed with '<<' and '>>'
// ParseDict reads and parses a PDF dictionary object enclosed with '<<' and '>>'
// TODO: Unexport (v3).
func (parser *PdfParser) ParseDict() (*PdfObjectDictionary, error) {
common.Log.Trace("Reading PDF Dict!")
@ -1325,7 +1325,7 @@ func (parser *PdfParser) traceStreamLength(lengthObj PdfObject) (PdfObject, erro
return slo, nil
}
// Parse an indirect object from the input stream. Can also be an object stream.
// ParseIndirectObject parses an indirect object from the input stream. Can also be an object stream.
// Returns the indirect object (*PdfIndirectObject) or the stream object (*PdfObjectStream).
// TODO: Unexport (v3).
func (parser *PdfParser) ParseIndirectObject() (PdfObject, error) {
@ -1504,7 +1504,7 @@ func (parser *PdfParser) ParseIndirectObject() (PdfObject, error) {
return &indirect, nil
}
// For testing purposes.
// NewParserFromString is used for testing purposes.
// TODO: Unexport (v3) or move to test files, if needed by external test cases.
func NewParserFromString(txt string) *PdfParser {
parser := PdfParser{}

View File

@ -17,10 +17,10 @@ import (
// PdfObject is an interface which all primitive PDF objects must implement.
type PdfObject interface {
// Output a string representation of the primitive (for debugging).
// String outputs a string representation of the primitive (for debugging).
String() string
// Output the PDF primitive as written to file as expected by the standard.
// DefaultWriteString outputs the PDF primitive as written to file as expected by the standard.
DefaultWriteString() string
}
@ -869,7 +869,7 @@ func GetStringVal(obj PdfObject) (val string, found bool) {
return
}
// GetStringVal is like GetStringVal except that it returns the string as a []byte.
// GetStringBytes is like GetStringVal except that it returns the string as a []byte.
// It is for convenience.
func GetStringBytes(obj PdfObject) (val []byte, found bool) {
so, found := TraceToDirectObject(obj).(*PdfObjectString)

View File

@ -7,7 +7,7 @@ package creator
// Drawable is a widget that can be used to draw with the Creator.
type Drawable interface {
// Draw onto blocks representing Page contents. As the content can wrap over many pages, multiple
// GeneratePageBlocks draw onto blocks representing Page contents. As the content can wrap over many pages, multiple
// templates are returned, one per Page. The function also takes a draw context containing information
// where to draw (if relative positioning) and the available height to draw on accounting for Margins etc.
GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)

View File

@ -468,10 +468,10 @@ type CellBorderStyle int
// Currently supported table styles are: None (no border) and boxed (line along each side).
const (
// No border
CellBorderStyleNone CellBorderStyle = iota
CellBorderStyleNone CellBorderStyle = iota // no border
// Borders along all sides (boxed).
CellBorderStyleSingle
CellBorderStyleDouble
)
@ -501,13 +501,13 @@ type CellHorizontalAlignment int
// Table cells have three horizontal alignment modes: left, center and right.
const (
// Align cell content on the left (with specified indent); unused space on the right.
// CellHorizontalAlignmentLeft aligns cell content on the left (with specified indent); unused space on the right.
CellHorizontalAlignmentLeft CellHorizontalAlignment = iota
// Align cell content in the middle (unused space divided equally on the left/right).
// CellHorizontalAlignmentCenter aligns cell content in the middle (unused space divided equally on the left/right).
CellHorizontalAlignmentCenter
// Align the cell content on the right; unsued space on the left.
// CellHorizontalAlignmentRight aligns the cell content on the right; unsued space on the left.
CellHorizontalAlignmentRight
)
@ -516,13 +516,13 @@ type CellVerticalAlignment int
// Table cells have three vertical alignment modes: top, middle and bottom.
const (
// Align cell content vertically to the top; unused space below.
// CellVerticalAlignmentTop aligns cell content vertically to the top; unused space below.
CellVerticalAlignmentTop CellVerticalAlignment = iota
// Align cell content in the middle; unused space divided equally above and below.
// CellVerticalAlignmentMiddle aligns cell content in the middle; unused space divided equally above and below.
CellVerticalAlignmentMiddle
// Align cell content on the bottom; unused space above.
// CellVerticalAlignmentBottom aligns cell content on the bottom; unused space above.
CellVerticalAlignmentBottom
)

View File

@ -5,7 +5,7 @@
package sampling
// Resample the raw data which is in 8-bit (byte) format as a different
// ResampleBytes resamples the raw data which is in 8-bit (byte) format as a different
// bit count per sample, up to 32 bits (uint32).
func ResampleBytes(data []byte, bitsPerSample int) []uint32 {
var samples []uint32
@ -96,7 +96,7 @@ func ResampleBytes(data []byte, bitsPerSample int) []uint32 {
return samples
}
// Resample the raw data which is in <=32-bit (uint32) format as a different
// ResampleUint32 resamples the raw data which is in <=32-bit (uint32) format as a different
// bit count per sample, up to 32 bits (uint32).
//
// bitsPerOutputSample is the number of bits for each output sample (up to 32)

View File

@ -219,7 +219,7 @@ func (this *PdfColorDeviceGray) Val() float64 {
return float64(*this)
}
// Convert to an integer format.
// ToInteger convert to an integer format.
func (this *PdfColorDeviceGray) ToInteger(bits int) uint32 {
maxVal := math.Pow(2, float64(bits)) - 1
return uint32(maxVal * this.Val())
@ -282,7 +282,7 @@ func (this *PdfColorspaceDeviceGray) ColorFromPdfObjects(objects []PdfObject) (P
return this.ColorFromFloats(floats)
}
// Convert gray -> rgb for a single color component.
// ColorToRGB converts gray -> rgb for a single color component.
func (this *PdfColorspaceDeviceGray) ColorToRGB(color PdfColor) (PdfColor, error) {
gray, ok := color.(*PdfColorDeviceGray)
if !ok {
@ -293,7 +293,7 @@ func (this *PdfColorspaceDeviceGray) ColorToRGB(color PdfColor) (PdfColor, error
return NewPdfColorDeviceRGB(float64(*gray), float64(*gray), float64(*gray)), nil
}
// Convert 1-component grayscale data to 3-component RGB.
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (this *PdfColorspaceDeviceGray) ImageToRGB(img Image) (Image, error) {
rgbImage := img
@ -343,7 +343,7 @@ func (this *PdfColorDeviceRGB) B() float64 {
return float64(this[2])
}
// Convert to an integer format.
// ToInteger convert to an integer format.
func (this *PdfColorDeviceRGB) ToInteger(bits int) [3]uint32 {
maxVal := math.Pow(2, float64(bits)) - 1
return [3]uint32{uint32(maxVal * this.R()), uint32(maxVal * this.G()), uint32(maxVal * this.B())}
@ -412,7 +412,7 @@ func (this *PdfColorspaceDeviceRGB) ColorFromFloats(vals []float64) (PdfColor, e
}
// Get the color from a series of pdf objects (3 for rgb).
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (this *PdfColorspaceDeviceRGB) ColorFromPdfObjects(objects []PdfObject) (PdfColor, error) {
if len(objects) != 3 {
return nil, errors.New("Range check")
@ -473,7 +473,7 @@ func (this *PdfColorspaceDeviceRGB) ImageToGray(img Image) (Image, error) {
// C, M, Y, K components.
// No other parameters.
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
// PdfColorDeviceCMYK is a CMYK color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64
func NewPdfColorDeviceCMYK(c, m, y, k float64) *PdfColorDeviceCMYK {
@ -501,7 +501,7 @@ func (this *PdfColorDeviceCMYK) K() float64 {
return float64(this[3])
}
// Convert to an integer format.
// ToInteger convert to an integer format.
func (this *PdfColorDeviceCMYK) ToInteger(bits int) [4]uint32 {
maxVal := math.Pow(2, float64(bits)) - 1
return [4]uint32{uint32(maxVal * this.C()), uint32(maxVal * this.M()), uint32(maxVal * this.Y()), uint32(maxVal * this.K())}
@ -563,7 +563,7 @@ func (this *PdfColorspaceDeviceCMYK) ColorFromFloats(vals []float64) (PdfColor,
return color, nil
}
// Get the color from a series of pdf objects (4 for cmyk).
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (this *PdfColorspaceDeviceCMYK) ColorFromPdfObjects(objects []PdfObject) (PdfColor, error) {
if len(objects) != 4 {
return nil, errors.New("Range check")
@ -679,13 +679,13 @@ func (this *PdfColorCalGray) Val() float64 {
return float64(*this)
}
// Convert to an integer format.
// ToInteger convert to an integer format.
func (this *PdfColorCalGray) ToInteger(bits int) uint32 {
maxVal := math.Pow(2, float64(bits)) - 1
return uint32(maxVal * this.Val())
}
// CalGray color space.
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct {
WhitePoint []float64 // [XW, YW, ZW]: Required
BlackPoint []float64 // [XB, YB, ZB]
@ -886,7 +886,7 @@ func (this *PdfColorspaceCalGray) ColorToRGB(color PdfColor) (PdfColor, error) {
return NewPdfColorDeviceRGB(r, g, b), nil
}
// A, B, C -> X, Y, Z
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (this *PdfColorspaceCalGray) ImageToRGB(img Image) (Image, error) {
rgbImage := img
@ -956,13 +956,13 @@ func (this *PdfColorCalRGB) C() float64 {
return float64(this[2])
}
// Convert to an integer format.
// ToInteger convert to an integer format.
func (this *PdfColorCalRGB) ToInteger(bits int) [3]uint32 {
maxVal := math.Pow(2, float64(bits)) - 1
return [3]uint32{uint32(maxVal * this.A()), uint32(maxVal * this.B()), uint32(maxVal * this.C())}
}
// A, B, C components
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct {
WhitePoint []float64
BlackPoint []float64
@ -973,8 +973,8 @@ type PdfColorspaceCalRGB struct {
container *PdfIndirectObject
}
// require parameters?
func NewPdfColorspaceCalRGB() *PdfColorspaceCalRGB {
// TODO: require parameters?
cs := &PdfColorspaceCalRGB{}
// Set optional parameters to default values.
@ -1106,7 +1106,7 @@ func newPdfColorspaceCalRGBFromPdfObject(obj PdfObject) (*PdfColorspaceCalRGB, e
return cs, nil
}
// Return as PDF object format [name dictionary]
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (this *PdfColorspaceCalRGB) ToPdfObject() PdfObject {
// CalRGB color space dictionary..
cspace := &PdfObjectArray{}
@ -1289,13 +1289,13 @@ func (this *PdfColorLab) B() float64 {
return float64(this[2])
}
// Convert to an integer format.
// ToInteger convert to an integer format.
func (this *PdfColorLab) ToInteger(bits int) [3]uint32 {
maxVal := math.Pow(2, float64(bits)) - 1
return [3]uint32{uint32(maxVal * this.L()), uint32(maxVal * this.A()), uint32(maxVal * this.B())}
}
// L*, a*, b* 3 component colorspace.
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct {
WhitePoint []float64 // Required.
BlackPoint []float64
@ -1327,8 +1327,8 @@ func (this *PdfColorspaceLab) DecodeArray() []float64 {
return decode
}
// require parameters?
func NewPdfColorspaceLab() *PdfColorspaceLab {
// TODO: require parameters?
cs := &PdfColorspaceLab{}
// Set optional parameters to default values.
@ -1429,7 +1429,7 @@ func newPdfColorspaceLabFromPdfObject(obj PdfObject) (*PdfColorspaceLab, error)
return cs, nil
}
// Return as PDF object format [name dictionary]
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (this *PdfColorspaceLab) ToPdfObject() PdfObject {
// CalRGB color space dictionary..
csObj := MakeArray()
@ -1668,7 +1668,7 @@ func (this *PdfColorICCBased) ToInteger(bits int) []uint32 {
*/
// See p. 157 for calculations...
// format [/ICCBased stream]
// PdfColorspaceICCBased format [/ICCBased stream]
//
// The stream shall contain the ICC profile.
// A conforming reader shall support ICC.1:2004:10 as required by PDF 1.7, which will enable it
@ -1801,7 +1801,7 @@ func newPdfColorspaceICCBasedFromPdfObject(obj PdfObject) (*PdfColorspaceICCBase
return cs, nil
}
// Return as PDF object format [name stream]
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (this *PdfColorspaceICCBased) ToPdfObject() PdfObject {
csObj := &PdfObjectArray{}
@ -1955,7 +1955,7 @@ type PdfColorPattern struct {
PatternName PdfObjectName // Name of the pattern (reference via resource dicts).
}
// Pattern colorspace.
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct {
UnderlyingCS PdfColorspace
@ -2053,6 +2053,7 @@ func (this *PdfColorspaceSpecialPattern) ColorFromFloats(vals []float64) (PdfCol
return this.UnderlyingCS.ColorFromFloats(vals)
}
// ColorFromPdfObjects loads the color from PDF objects.
// The first objects (if present) represent the color in underlying colorspace. The last one represents
// the name of the pattern.
func (this *PdfColorspaceSpecialPattern) ColorFromPdfObjects(objects []PdfObject) (PdfColor, error) {
@ -2087,7 +2088,7 @@ func (this *PdfColorspaceSpecialPattern) ColorFromPdfObjects(objects []PdfObject
return patternColor, nil
}
// Only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the
// ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the
// pattern objects and convert those. If that is desired, needs to be done separately. See for example
// grayscale conversion example in unidoc-examples repo.
func (this *PdfColorspaceSpecialPattern) ColorToRGB(color PdfColor) (PdfColor, error) {
@ -2109,15 +2110,14 @@ func (this *PdfColorspaceSpecialPattern) ColorToRGB(color PdfColor) (PdfColor, e
return this.UnderlyingCS.ColorToRGB(patternColor.Color)
}
// An image cannot be defined in a pattern colorspace, returns an error.
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (this *PdfColorspaceSpecialPattern) ImageToRGB(img Image) (Image, error) {
common.Log.Debug("Error: Image cannot be specified in Pattern colorspace")
return img, errors.New("Invalid colorspace for image (pattern)")
}
//////////////////////
// Indexed colorspace. An indexed color space is a lookup table, where the input element is an index to the lookup
// table and the output is a color defined in the lookup table in the Base colorspace.
// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element is an index to the
// lookup table and the output is a color defined in the lookup table in the Base colorspace.
// [/Indexed base hival lookup]
type PdfColorspaceSpecialIndexed struct {
Base PdfColorspace
@ -2284,7 +2284,7 @@ func (this *PdfColorspaceSpecialIndexed) ColorToRGB(color PdfColor) (PdfColor, e
return this.Base.ColorToRGB(color)
}
// Convert an indexed image to RGB.
// ImageToRGB convert an indexed image to RGB.
func (this *PdfColorspaceSpecialIndexed) ImageToRGB(img Image) (Image, error) {
//baseImage := img
// Make a new representation of the image to be converted with the base colorspace.
@ -2329,7 +2329,7 @@ func (this *PdfColorspaceSpecialIndexed) ImageToRGB(img Image) (Image, error) {
return this.Base.ImageToRGB(baseImage)
}
// [/Indexed base hival lookup]
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (this *PdfColorspaceSpecialIndexed) ToPdfObject() PdfObject {
csObj := MakeArray(MakeName("Indexed"))
csObj.Append(this.Base.ToPdfObject())
@ -2344,8 +2344,7 @@ func (this *PdfColorspaceSpecialIndexed) ToPdfObject() PdfObject {
return csObj
}
//////////////////////
// Separation colorspace.
// PdfColorspaceSpecialSeparation is a Separation colorspace.
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the

View File

@ -25,17 +25,20 @@ const (
FieldFlagClear FieldFlag = 0
// Flags for all field types.
FieldFlagReadOnly FieldFlag = 1
FieldFlagRequired FieldFlag = (1 << 1)
FieldFlagNoExport FieldFlag = (2 << 1)
// Flags for button fields only.
FieldFlagNoToggleToOff FieldFlag = (1 << 14)
FieldFlagRadio FieldFlag = (1 << 15)
FieldFlagPushbutton FieldFlag = (1 << 16)
FieldFlagRadiosInUnision FieldFlag = (1 << 25)
// Flags for text fields only.
FieldFlagMultiline FieldFlag = (1 << 12)
FieldFlagPassword FieldFlag = (1 << 13)
FieldFlagFileSelect FieldFlag = (1 << 20)
@ -44,9 +47,11 @@ const (
FieldFlagRichText FieldFlag = (1 << 25)
// Flags for text and choice fields.
FieldFlagDoNotSpellCheck FieldFlag = (1 << 22)
// Flags for choice fields only.
FieldFlagCombo FieldFlag = (1 << 17)
FieldFlagEdit FieldFlag = (1 << 18)
FieldFlagSort FieldFlag = (1 << 19)

View File

@ -157,7 +157,7 @@ func NewFontFile2FromPdfObject(obj core.PdfObject) (TtfType, error) {
return t.Parse()
}
// NewFontFile2FromPdfObject returns a TtfType describing the TrueType font file in disk file `fileStr`.
// TtfParse returns a TtfType describing the TrueType font file in disk file `fileStr`.
func TtfParse(fileStr string) (TtfType, error) {
f, err := os.Open(fileStr)
if err != nil {
@ -169,7 +169,7 @@ func TtfParse(fileStr string) (TtfType, error) {
return t.Parse()
}
// NewFontFile2FromPdfObject returns a TtfType describing the TrueType font file in io.Reader `t`.f.
// Parse returns a TtfType describing the TrueType font file in io.Reader `t`.f.
func (t *ttfParser) Parse() (TtfType, error) {
version, err := t.ReadStr(4)
@ -813,7 +813,7 @@ func (t *ttfParser) ReadULong() (val uint32) {
return val
}
// ReadULong reads 4 bytes and returns them as a float, the first 2 bytes for the whole number and
// Read32Fixed reads 4 bytes and returns them as a float, the first 2 bytes for the whole number and
// the second 2 bytes for the fraction.
func (t *ttfParser) Read32Fixed() float64 {
whole := float64(t.ReadShort())

View File

@ -95,11 +95,9 @@ func interpolate(x, xmin, xmax, ymin, ymax float64) float64 {
return y
}
//
// Type 0 functions use a sequence of sample values (contained in a stream) to provide an approximation
// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
// table in which each entry has n components
//
type PdfFunctionType0 struct {
Domain []float64 // required; 2*m length; where m is the number of input values
Range []float64 // required (type 0); 2*n length; where n is the number of output values
@ -360,13 +358,11 @@ func (this *PdfFunctionType0) processSamples() error {
return nil
}
//
// Type 2 functions define an exponential interpolation of one input value and n
// PdfFunctionType2 defines an exponential interpolation of one input value and n
// output values:
// f(x) = y_0, ..., y_(n-1)
// y_j = C0_j + x^N * (C1_j - C0_j); for 0 <= j < n
// When N=1 ; linear interpolation between C0 and C1.
//
type PdfFunctionType2 struct {
Domain []float64
Range []float64
@ -543,10 +539,8 @@ func (this *PdfFunctionType2) Evaluate(x []float64) ([]float64, error) {
return y, nil
}
//
// Type 3 functions define stitching of the subdomains of serveral 1-input functions to produce
// PdfFunctionType3 defines stitching of the subdomains of serveral 1-input functions to produce
// a single new 1-input function.
//
type PdfFunctionType3 struct {
Domain []float64
Range []float64
@ -724,9 +718,7 @@ func (this *PdfFunctionType3) ToPdfObject() PdfObject {
}
}
//
// Type 4. Postscript calculator functions.
//
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct {
Domain []float64
Range []float64
@ -738,7 +730,7 @@ type PdfFunctionType4 struct {
container *PdfObjectStream
}
// Input [x1 x2 x3]
// Evaluate runs the function. Input is [x1 x2 x3].
func (this *PdfFunctionType4) Evaluate(xVec []float64) ([]float64, error) {
if this.executor == nil {
this.executor = ps.NewPSExecutor(this.Program)

View File

@ -221,7 +221,7 @@ type ImageHandler interface {
// Read any image type and load into a new Image object.
Read(r io.Reader) (*Image, error)
// Load a unidoc Image from a standard Go image structure.
// NewImageFromGoImage load a unidoc Image from a standard Go image structure.
NewImageFromGoImage(goimg goimage.Image) (*Image, error)
// Compress an image.
@ -231,7 +231,7 @@ type ImageHandler interface {
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{}
// Create a unidoc Image from a golang Image.
// NewImageFromGoImage creates a unidoc Image from a golang Image.
func (ih DefaultImageHandler) NewImageFromGoImage(goimg goimage.Image) (*Image, error) {
// Speed up jpeg encoding by converting to RGBA first.
// Will not be required once the golang image/jpeg package is optimized.
@ -289,7 +289,7 @@ func (ih DefaultImageHandler) Compress(input *Image, quality int64) (*Image, err
return input, nil
}
// ImageHandler is used for handling images.
// ImageHandling is used for handling images.
var ImageHandling ImageHandler = DefaultImageHandler{}
// SetImageHandler sets the image handler used by the package.

View File

@ -233,7 +233,7 @@ func (this *PdfOutline) GetContainingPdfObject() PdfObject {
return this.primitive
}
// Recursively build the Outline tree PDF object.
// ToPdfObject recursively builds the Outline tree PDF object.
func (this *PdfOutline) ToPdfObject() PdfObject {
container := this.primitive
dict := container.PdfObject.(*PdfObjectDictionary)
@ -260,8 +260,7 @@ func (this *PdfOutlineItem) GetContainingPdfObject() PdfObject {
return this.primitive
}
// Outline item.
// Recursively build the Outline tree PDF object.
// ToPdfObject recursively builds the Outline tree PDF object.
func (this *PdfOutlineItem) ToPdfObject() PdfObject {
container := this.primitive
dict := container.PdfObject.(*PdfObjectDictionary)

View File

@ -362,7 +362,7 @@ func (reader *PdfReader) LoadAnnotations(d *PdfObjectDictionary) ([]*PdfAnnotati
return annotations, nil
}
// Get the inheritable media box value, either from the page
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (this *PdfPage) GetMediaBox() (*PdfRectangle, error) {
if this.MediaBox != nil {
@ -441,7 +441,7 @@ func (this *PdfPage) getResources() (*PdfPageResources, error) {
return nil, nil
}
// Convert the Page to a PDF object dictionary.
// GetPageDict convert the Page to a PDF object dictionary.
func (this *PdfPage) GetPageDict() *PdfObjectDictionary {
p := this.pageDict
p.Clear()
@ -547,7 +547,7 @@ func (this *PdfPage) AddImageResource(name PdfObjectName, ximg *XObjectImage) er
return nil
}
// Check if has XObject resource by name.
// HasXObjectByName checks if has XObject resource by name.
func (this *PdfPage) HasXObjectByName(name PdfObjectName) bool {
xresDict, has := this.Resources.XObject.(*PdfObjectDictionary)
if !has {
@ -561,7 +561,7 @@ func (this *PdfPage) HasXObjectByName(name PdfObjectName) bool {
}
}
// Get XObject by name.
// GetXObjectByName get XObject by name.
func (this *PdfPage) GetXObjectByName(name PdfObjectName) (PdfObject, bool) {
xresDict, has := this.Resources.XObject.(*PdfObjectDictionary)
if !has {
@ -575,7 +575,7 @@ func (this *PdfPage) GetXObjectByName(name PdfObjectName) (PdfObject, bool) {
}
}
// Check if has font resource by name.
// HasFontByName checks if has font resource by name.
func (this *PdfPage) HasFontByName(name PdfObjectName) bool {
fontDict, has := this.Resources.Font.(*PdfObjectDictionary)
if !has {
@ -589,7 +589,7 @@ func (this *PdfPage) HasFontByName(name PdfObjectName) bool {
}
}
// Check if ExtGState name is available.
// HasExtGState checks if ExtGState name is available.
func (this *PdfPage) HasExtGState(name PdfObjectName) bool {
if this.Resources == nil {
return false
@ -612,7 +612,7 @@ func (this *PdfPage) HasExtGState(name PdfObjectName) bool {
return has
}
// Add a graphics state to the XObject resources.
// AddExtGState adds a graphics state to the XObject resources.
func (this *PdfPage) AddExtGState(name PdfObjectName, egs *PdfObjectDictionary) error {
if this.Resources == nil {
//this.Resources = &PdfPageResources{}
@ -633,7 +633,7 @@ func (this *PdfPage) AddExtGState(name PdfObjectName, egs *PdfObjectDictionary)
return nil
}
// Add a font dictionary to the Font resources.
// AddFont adds a font dictionary to the Font resources.
func (this *PdfPage) AddFont(name PdfObjectName, font PdfObject) error {
if this.Resources == nil {
this.Resources = NewPdfPageResources()
@ -661,7 +661,7 @@ type WatermarkImageOptions struct {
PreserveAspectRatio bool
}
// Add a watermark to the page.
// AddWatermarkImage add a watermark to the page.
func (this *PdfPage) AddWatermarkImage(ximg *XObjectImage, opt WatermarkImageOptions) error {
// Page dimensions.
bbox, err := this.GetMediaBox()
@ -865,7 +865,7 @@ func (this *PdfPage) GetContentStreams() ([]string, error) {
}
}
// Get all the content streams for a page as one string.
// GetAllContentStreams gets all the content streams for a page as one string.
func (this *PdfPage) GetAllContentStreams() (string, error) {
cstreams, err := this.GetContentStreams()
if err != nil {

View File

@ -30,12 +30,12 @@ func (this *PdfPattern) GetContainingPdfObject() PdfObject {
return this.container
}
// Context in this case is a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (this *PdfPattern) GetContext() PdfModel {
return this.context
}
// Set the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (this *PdfPattern) SetContext(ctx PdfModel) {
this.context = ctx
}
@ -48,17 +48,17 @@ func (this *PdfPattern) IsShading() bool {
return this.PatternType == 2
}
// Check with IsTiling() prior to using this to ensure is a tiling pattern.
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (this *PdfPattern) GetAsTilingPattern() *PdfTilingPattern {
return this.context.(*PdfTilingPattern)
}
// Check with IsShading() prior to using this, to ensure is a shading pattern.
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (this *PdfPattern) GetAsShadingPattern() *PdfShadingPattern {
return this.context.(*PdfShadingPattern)
}
// A Tiling pattern consists of repetitions of a pattern cell with defined intervals.
// PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals.
// It is a type 1 pattern. (PatternType = 1).
// A tiling pattern is represented by a stream object, where the stream content is
// a content stream that describes the pattern cell.
@ -111,7 +111,7 @@ func (this *PdfTilingPattern) GetContentStreamWithEncoder() ([]byte, StreamEncod
return decoded, encoder, nil
}
// Set the pattern cell's content stream.
// SetContentStream sets the pattern cell's content stream.
func (this *PdfTilingPattern) SetContentStream(content []byte, encoder StreamEncoder) error {
streamObj, ok := this.container.(*PdfObjectStream)
if !ok {
@ -144,8 +144,8 @@ func (this *PdfTilingPattern) SetContentStream(content []byte, encoder StreamEnc
return nil
}
// Shading patterns provide a smooth transition between colors across an area to be painted, i.e.
// color(x,y) = f(x,y) at each point.
// PdfShadingPattern is a Shading patterns that provide a smooth transition between colors across an area to be painted,
// i.e. color(x,y) = f(x,y) at each point.
// It is a type 2 pattern (PatternType = 2).
type PdfShadingPattern struct {
*PdfPattern

View File

@ -13,7 +13,7 @@ import (
. "github.com/unidoc/unidoc/pdf/core"
)
// Page resources model.
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct {
ExtGState PdfObject
@ -89,8 +89,8 @@ func (r *PdfPageResources) ToPdfObject() PdfObject {
return d
}
// Add External Graphics State (GState). The gsDict can be specified either directly as a dictionary or an indirect
// object containing a dictionary.
// AddExtGState add External Graphics State (GState). The gsDict can be specified either directly as a dictionary or an
// indirect object containing a dictionary.
func (r *PdfPageResources) AddExtGState(gsName PdfObjectName, gsDict PdfObject) error {
if r.ExtGState == nil {
r.ExtGState = MakeDict()
@ -107,7 +107,7 @@ func (r *PdfPageResources) AddExtGState(gsName PdfObjectName, gsDict PdfObject)
return nil
}
// Get the ExtGState specified by keyName. Returns a bool indicating whether it was found or not.
// GetExtGState gets the ExtGState specified by keyName. Returns a bool indicating whether it was found or not.
func (r *PdfPageResources) GetExtGState(keyName PdfObjectName) (PdfObject, bool) {
if r.ExtGState == nil {
return nil, false
@ -126,14 +126,14 @@ func (r *PdfPageResources) GetExtGState(keyName PdfObjectName) (PdfObject, bool)
}
}
// Check whether a font is defined by the specified keyName.
// HasExtGState checks whether a font is defined by the specified keyName.
func (r *PdfPageResources) HasExtGState(keyName PdfObjectName) bool {
_, has := r.GetFontByName(keyName)
return has
}
// Get the shading specified by keyName. Returns nil if not existing. The bool flag indicated whether it was found
// or not.
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing. The bool flag indicated whether
// it was found or not.
func (r *PdfPageResources) GetShadingByName(keyName PdfObjectName) (*PdfShading, bool) {
if r.Shading == nil {
return nil, false
@ -157,7 +157,7 @@ func (r *PdfPageResources) GetShadingByName(keyName PdfObjectName) (*PdfShading,
}
}
// Set a shading resource specified by keyName.
// SetShadingByName sets a shading resource specified by keyName.
func (r *PdfPageResources) SetShadingByName(keyName PdfObjectName, shadingObj PdfObject) error {
if r.Shading == nil {
r.Shading = MakeDict()
@ -172,8 +172,8 @@ func (r *PdfPageResources) SetShadingByName(keyName PdfObjectName, shadingObj Pd
return nil
}
// Get the pattern specified by keyName. Returns nil if not existing. The bool flag indicated whether it was found
// or not.
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing. The bool flag indicated whether
// it was found or not.
func (r *PdfPageResources) GetPatternByName(keyName PdfObjectName) (*PdfPattern, bool) {
if r.Pattern == nil {
return nil, false
@ -198,7 +198,7 @@ func (r *PdfPageResources) GetPatternByName(keyName PdfObjectName) (*PdfPattern,
}
}
// Set a pattern resource specified by keyName.
// SetPatternByName sets a pattern resource specified by keyName.
func (r *PdfPageResources) SetPatternByName(keyName PdfObjectName, pattern PdfObject) error {
if r.Pattern == nil {
r.Pattern = MakeDict()
@ -213,7 +213,7 @@ func (r *PdfPageResources) SetPatternByName(keyName PdfObjectName, pattern PdfOb
return nil
}
// Get the font specified by keyName. Returns the PdfObject which the entry refers to.
// GetFontByName gets the font specified by keyName. Returns the PdfObject which the entry refers to.
// Returns a bool value indicating whether or not the entry was found.
func (r *PdfPageResources) GetFontByName(keyName PdfObjectName) (PdfObject, bool) {
if r.Font == nil {
@ -233,13 +233,13 @@ func (r *PdfPageResources) GetFontByName(keyName PdfObjectName) (PdfObject, bool
}
}
// Check whether a font is defined by the specified keyName.
// HasFontByName checks whether a font is defined by the specified keyName.
func (r *PdfPageResources) HasFontByName(keyName PdfObjectName) bool {
_, has := r.GetFontByName(keyName)
return has
}
// Set the font specified by keyName to the given object.
// SetFontByName sets the font specified by keyName to the given object.
func (r *PdfPageResources) SetFontByName(keyName PdfObjectName, obj PdfObject) error {
if r.Font == nil {
// Create if not existing.
@ -287,7 +287,7 @@ func (r *PdfPageResources) SetColorspaceByName(keyName PdfObjectName, cs PdfColo
return nil
}
// Check if an XObject with a specified keyName is defined.
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (r *PdfPageResources) HasXObjectByName(keyName PdfObjectName) bool {
obj, _ := r.GetXObjectByName(keyName)
if obj != nil {
@ -321,7 +321,7 @@ const (
XObjectTypeUnknown XObjectType = iota
)
// Returns the XObject with the specified keyName and the object type.
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (r *PdfPageResources) GetXObjectByName(keyName PdfObjectName) (*PdfObjectStream, XObjectType) {
if r.XObject == nil {
return nil, XObjectTypeUndefined

View File

@ -37,12 +37,12 @@ func (this *PdfShading) GetContainingPdfObject() PdfObject {
return this.container
}
// Context in this case is a reference to the subshading entry as represented by PdfShadingType1-7.
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (this *PdfShading) GetContext() PdfModel {
return this.context
}
// Set the sub annotation (context).
// SetContext set the sub annotation (context).
func (this *PdfShading) SetContext(ctx PdfModel) {
this.context = ctx
}
@ -67,7 +67,7 @@ func (this *PdfShading) getShadingDict() (*PdfObjectDictionary, error) {
}
}
// Shading type 1: Function-based shading.
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct {
*PdfShading
Domain *PdfObjectArray
@ -75,7 +75,7 @@ type PdfShadingType1 struct {
Function []PdfFunction
}
// Shading type 2: Axial shading.
// PdfShadingType2 is a Axial shading.
type PdfShadingType2 struct {
*PdfShading
Coords *PdfObjectArray
@ -84,7 +84,7 @@ type PdfShadingType2 struct {
Extend *PdfObjectArray
}
// Shading type 3: Radial shading.
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct {
*PdfShading
Coords *PdfObjectArray
@ -93,7 +93,7 @@ type PdfShadingType3 struct {
Extend *PdfObjectArray
}
// Shading type 4: Free-form Gouraud-shaded triangle mesh.
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct {
*PdfShading
BitsPerCoordinate *PdfObjectInteger
@ -103,7 +103,7 @@ type PdfShadingType4 struct {
Function []PdfFunction
}
// Shading type 5: Lattice-form Gouraud-shaded triangle mesh.
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct {
*PdfShading
BitsPerCoordinate *PdfObjectInteger
@ -113,7 +113,7 @@ type PdfShadingType5 struct {
Function []PdfFunction
}
// Shading type 6: Coons patch mesh.
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct {
*PdfShading
BitsPerCoordinate *PdfObjectInteger
@ -123,7 +123,7 @@ type PdfShadingType6 struct {
Function []PdfFunction
}
// Shading type 7: Tensor-product patch mesh.
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct {
*PdfShading
BitsPerCoordinate *PdfObjectInteger

View File

@ -17,7 +17,7 @@ import (
. "github.com/unidoc/unidoc/pdf/core"
)
// Definition of a rectangle.
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct {
Llx float64 // Lower left corner (ll).
Lly float64
@ -58,7 +58,7 @@ func NewPdfRectangle(arr PdfObjectArray) (*PdfRectangle, error) {
return &rect, nil
}
// Convert to a PDF object.
// ToPdfObject convert rectangle to a PDF object.
func (rect *PdfRectangle) ToPdfObject() PdfObject {
arr := MakeArray(MakeFloat(rect.Llx), MakeFloat(rect.Lly), MakeFloat(rect.Urx), MakeFloat(rect.Ury))
return arr
@ -120,7 +120,7 @@ func NewPdfDate(dateStr string) (PdfDate, error) {
return d, nil
}
// Convert to a PDF string object.
// ToPdfObject converts date to a PDF string object.
func (date *PdfDate) ToPdfObject() PdfObject {
str := fmt.Sprintf("D:%.4d%.2d%.2d%.2d%.2d%.2d%c%.2d'%.2d'",
date.year, date.month, date.day, date.hour, date.minute, date.second,

View File

@ -250,7 +250,7 @@ func (this *PdfWriter) copyObjects() {
}
}
// Set the PDF version of the output file.
// SetVersion sets the PDF version of the output file.
func (this *PdfWriter) SetVersion(majorVersion, minorVersion int) {
this.majorVersion = majorVersion
this.minorVersion = minorVersion

View File

@ -37,7 +37,7 @@ type XObjectForm struct {
primitive *PdfObjectStream
}
// Create a brand new XObject Form. Creates a new underlying PDF object stream primitive.
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm() *XObjectForm {
xobj := &XObjectForm{}
stream := &PdfObjectStream{}
@ -46,8 +46,8 @@ func NewXObjectForm() *XObjectForm {
return xobj
}
// Build the Form XObject from a stream object.
// XXX: Should this be exposed? Consider different access points.
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream(stream *PdfObjectStream) (*XObjectForm, error) {
form := &XObjectForm{}
form.primitive = stream
@ -127,8 +127,8 @@ func (xform *XObjectForm) GetContentStream() ([]byte, error) {
return decoded, nil
}
// Update the content stream with specified encoding. If encoding is null, will use the xform.Filter object
// or Raw encoding if not set.
// SetContentStream updates the content stream with specified encoding. If encoding is null, will use the xform.Filter
// object or Raw encoding if not set.
func (xform *XObjectForm) SetContentStream(content []byte, encoder StreamEncoder) error {
encoded := content
@ -152,7 +152,7 @@ func (xform *XObjectForm) SetContentStream(content []byte, encoder StreamEncoder
return nil
}
// Return a stream object.
// ToPdfObject return a stream object.
func (xform *XObjectForm) ToPdfObject() PdfObject {
stream := xform.primitive
@ -226,7 +226,7 @@ func NewXObjectImage() *XObjectImage {
return xobj
}
// Creates a new XObject Image from an image object with default options.
// NewXObjectImageFromImage creates a new XObject Image from an image object with default options.
// If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage(img *Image, cs PdfColorspace, encoder StreamEncoder) (*XObjectImage, error) {
xobj := NewXObjectImage()
@ -367,7 +367,7 @@ func toGray(matte *PdfObjectArray) (float64, error) {
return 0.0, err
}
// Build the image xobject from a stream object.
// NewXObjectImageFromStream build the image xobject from a stream object.
// An image dictionary is the dictionary portion of a stream object representing an image XObject.
func NewXObjectImageFromStream(stream *PdfObjectStream) (*XObjectImage, error) {
img := &XObjectImage{}
@ -445,7 +445,7 @@ func NewXObjectImageFromStream(stream *PdfObjectStream) (*XObjectImage, error) {
return img, nil
}
// Update XObject Image with new image data.
// SetImage update XObject Image with new image data.
func (ximg *XObjectImage) SetImage(img *Image, cs PdfColorspace) error {
encoded, err := ximg.Filter.EncodeBytes(img.Data)
if err != nil {
@ -477,7 +477,7 @@ func (ximg *XObjectImage) SetImage(img *Image, cs PdfColorspace) error {
return nil
}
// Set compression filter. Decodes with current filter sets and encodes the data with the new filter.
// SetFilter sets compression filter. Decodes with current filter sets and encodes the data with the new filter.
func (ximg *XObjectImage) SetFilter(encoder StreamEncoder) error {
encoded := ximg.Stream
decoded, err := ximg.Filter.DecodeBytes(encoded)
@ -495,7 +495,7 @@ func (ximg *XObjectImage) SetFilter(encoder StreamEncoder) error {
return nil
}
// This will convert to an Image which can be transformed or saved out.
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (ximg *XObjectImage) ToImage() (*Image, error) {
image := &Image{}
@ -543,7 +543,7 @@ func (ximg *XObjectImage) GetContainingPdfObject() PdfObject {
return ximg.primitive
}
// Return a stream object.
// ToPdfObject return a stream object.
func (ximg *XObjectImage) ToPdfObject() PdfObject {
stream := ximg.primitive