common

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2024 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Overview

Package common contains wrapper types and utilities common to all of the OOXML document formats.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppProperties

type AppProperties struct {
	// contains filtered or unexported fields
}

AppProperties contains properties specific to the document and the application that created it.

func NewAppProperties

func NewAppProperties() AppProperties

NewAppProperties constructs a new AppProperties.

func (AppProperties) Application

func (a AppProperties) Application() string

Application returns the name of the application that created the document. For gooxml created documents, it defaults to github.com/codrocker/gooxml

func (AppProperties) ApplicationVersion

func (a AppProperties) ApplicationVersion() string

ApplicationVersion returns the version of the application that created the document.

func (AppProperties) Company

func (a AppProperties) Company() string

Company returns the name of the company that created the document. For gooxml created documents, it defaults to github.com/codrocker/gooxml

func (AppProperties) SetApplication

func (a AppProperties) SetApplication(s string)

SetApplication sets the name of the application that created the document.

func (AppProperties) SetApplicationVersion

func (a AppProperties) SetApplicationVersion(s string)

SetApplicationVersion sets the version of the application that created the document. Per MS, the verison string mut be in the form 'XX.YYYY'.

func (AppProperties) SetCompany

func (a AppProperties) SetCompany(s string)

SetCompany sets the name of the company that created the document.

func (AppProperties) SetDocSecurity

func (a AppProperties) SetDocSecurity(v int32)

SetDocSecurity sets the document security flag.

func (AppProperties) SetLinksUpToDate

func (a AppProperties) SetLinksUpToDate(v bool)

SetLinksUpToDate sets the links up to date flag.

func (AppProperties) X

X returns the inner wrapped XML type.

type ContentTypes

type ContentTypes struct {
	// contains filtered or unexported fields
}

ContentTypes is the top level "[Content_Types].xml" in a zip package.

func NewContentTypes

func NewContentTypes() ContentTypes

NewContentTypes returns a wrapper around a newly constructed content-types.

func (ContentTypes) AddDefault

func (c ContentTypes) AddDefault(fileExtension string, contentType string)

AddDefault registers a default content type for a given file extension.

func (ContentTypes) AddOverride

func (c ContentTypes) AddOverride(path, contentType string)

AddOverride adds an override content type for a given path name.

func (ContentTypes) EnsureDefault

func (c ContentTypes) EnsureDefault(ext, contentType string)

EnsureDefault esnures that an extension and default content type exist, adding it if necessary.

func (ContentTypes) EnsureOverride

func (c ContentTypes) EnsureOverride(path, contentType string)

EnsureOverride ensures that an override for the given path exists, adding it if necessary

func (ContentTypes) RemoveOverride

func (c ContentTypes) RemoveOverride(path string)

RemoveOverride removes an override given a path.

func (ContentTypes) X

X returns the inner raw content types.

type CoreProperties

type CoreProperties struct {
	// contains filtered or unexported fields
}

CoreProperties contains document specific properties.

Example
package main

import (
	"fmt"
	"time"

	"github.com/codrocker/gooxml/document"
)

func main() {
	doc, _ := document.Open("document.docx")
	cp := doc.CoreProperties
	// Reading Properties
	fmt.Println("Title:", cp.Title())
	fmt.Println("Author:", cp.Author())
	fmt.Println("Description:", cp.Description())
	fmt.Println("Last Modified By:", cp.LastModifiedBy())
	fmt.Println("Category:", cp.Category())
	fmt.Println("Content Status:", cp.ContentStatus())
	fmt.Println("Created:", cp.Created())
	fmt.Println("Modified:", cp.Modified())

	// Setting Properties
	cp.SetTitle("CP Invoices")
	cp.SetAuthor("John Doe")
	cp.SetCategory("Invoices")
	cp.SetContentStatus("Draft")
	cp.SetLastModifiedBy("Jane Smith")
	cp.SetCreated(time.Now())
	cp.SetModified(time.Now())
	doc.SaveToFile("document.docx")
}
Output:

func NewCoreProperties

func NewCoreProperties() CoreProperties

NewCoreProperties constructs a new CoreProperties.

func (CoreProperties) Author

func (c CoreProperties) Author() string

Author returns the author of the document

func (CoreProperties) Category

func (c CoreProperties) Category() string

Category returns the category of the document

func (CoreProperties) ContentStatus

func (c CoreProperties) ContentStatus() string

ContentStatus returns the content status of the document (e.g. "Final", "Draft")

func (CoreProperties) Created

func (c CoreProperties) Created() time.Time

Created returns the time that the document was created.

func (CoreProperties) Description

func (c CoreProperties) Description() string

Description returns the description of the document

func (CoreProperties) LastModifiedBy

func (c CoreProperties) LastModifiedBy() string

LastModifiedBy returns the name of the last person to modify the document

func (CoreProperties) Modified

func (c CoreProperties) Modified() time.Time

Modified returns the time that the document was modified.

func (CoreProperties) SetAuthor

func (c CoreProperties) SetAuthor(s string)

SetAuthor records the author of the document.

func (CoreProperties) SetCategory

func (c CoreProperties) SetCategory(s string)

SetCategory records the category of the document.

func (CoreProperties) SetContentStatus

func (c CoreProperties) SetContentStatus(s string)

SetContentStatus records the content status of the document.

func (CoreProperties) SetCreated

func (c CoreProperties) SetCreated(t time.Time)

SetCreated sets the time that the document was created.

func (CoreProperties) SetDescription

func (c CoreProperties) SetDescription(s string)

SetDescription records the description of the document.

func (CoreProperties) SetLanguage

func (c CoreProperties) SetLanguage(s string)

SetLanguage records the language of the document.

func (CoreProperties) SetLastModifiedBy

func (c CoreProperties) SetLastModifiedBy(s string)

SetLastModifiedBy records the last person to modify the document.

func (CoreProperties) SetModified

func (c CoreProperties) SetModified(t time.Time)

SetModified sets the time that the document was modified.

func (CoreProperties) SetTitle

func (c CoreProperties) SetTitle(s string)

SetTitle records the title of the document.

func (CoreProperties) Title

func (c CoreProperties) Title() string

Title returns the Title of the document

func (CoreProperties) X

X returns the inner wrapped XML type.

type DocBase

type DocBase struct {
	ContentTypes   ContentTypes
	AppProperties  AppProperties
	Rels           Relationships
	CoreProperties CoreProperties
	Thumbnail      image.Image // thumbnail preview of the document

	Images     []ImageRef
	ExtraFiles []ExtraFile
	TmpPath    string // path where temporary files are stored when opening documents

}

DocBase is the type embedded in in the Document/Workbook/Presentation types that contains members common to all.

func (*DocBase) AddExtraFileFromZip

func (d *DocBase) AddExtraFileFromZip(f *zip.File) error

AddExtraFileFromZip is used when reading an unsupported file from an OOXML file. This ensures that unsupported file content will at least round-trip correctly.

func (*DocBase) WriteExtraFiles

func (d *DocBase) WriteExtraFiles(z *zip.Writer) error

WriteExtraFiles writes the extra files to the zip package.

type ExtraFile

type ExtraFile struct {
	ZipPath  string
	DiskPath string
}

ExtraFile is an unsupported file type extracted from, or to be written to a zip package

type Hyperlink Relationship

Hyperlink is just an appropriately configured relationship.

type Image

type Image struct {
	Size   image.Point
	Format string
	Path   string
	Data   *[]byte
}

Image is a container for image information. It's used as we need format and and size information to use images. It contains either the filesystem path to the image, or the image itself.

func ImageFromBytes

func ImageFromBytes(data []byte) (Image, error)

ImageFromBytes returns an Image struct for an in-memory image. You can also construct an Image directly if the file and size are known.

func ImageFromFile

func ImageFromFile(path string) (Image, error)

ImageFromFile reads an image from a file on disk. It doesn't keep the image in memory and only reads it to determine the format and size. You can also construct an Image directly if the file and size are known.

type ImageRef

type ImageRef struct {
	// contains filtered or unexported fields
}

ImageRef is a reference to an image within a document.

func MakeImageRef

func MakeImageRef(img Image, d *DocBase, rels Relationships) ImageRef

MakeImageRef constructs an image reference which is a reference to a particular image file inside a document. The same image can be used multiple times in a document by re-use the ImageRef.

func (ImageRef) Data

func (i ImageRef) Data() *[]byte

Data returns the data of an image file, if any.

func (ImageRef) Format

func (i ImageRef) Format() string

Format returns the format of the underlying image

func (ImageRef) Path

func (i ImageRef) Path() string

Path returns the path to an image file, if any.

func (ImageRef) RelID

func (i ImageRef) RelID() string

RelID returns the relationship ID.

func (ImageRef) RelativeHeight

func (i ImageRef) RelativeHeight(w measurement.Distance) measurement.Distance

RelativeHeight returns the relative height of an image given a fixed width. This is used when setting image to a fixed width to calculate the height required to keep the same image aspect ratio.

func (ImageRef) RelativeWidth

func (i ImageRef) RelativeWidth(h measurement.Distance) measurement.Distance

RelativeWidth returns the relative width of an image given a fixed height. This is used when setting image to a fixed height to calculate the width required to keep the same image aspect ratio.

func (*ImageRef) SetRelID

func (i *ImageRef) SetRelID(id string)

func (ImageRef) Size

func (i ImageRef) Size() image.Point

Size returns the size of an image

type Relationship

type Relationship struct {
	// contains filtered or unexported fields
}

Relationship is a relationship within a .rels file.

func NewRelationship

func NewRelationship() Relationship

NewRelationship constructs a new relationship.

func (Relationship) ID

func (r Relationship) ID() string

ID returns the ID of a relationship.

func (Relationship) SetTarget

func (r Relationship) SetTarget(s string)

SetTarget set the target (path) of a relationship.

func (Relationship) String

func (r Relationship) String() string

func (Relationship) Target

func (r Relationship) Target() string

Target returns the target (path) of a relationship.

func (Relationship) Type

func (r Relationship) Type() string

Type returns the type of a relationship.

func (Relationship) X

X returns the inner wrapped XML type.

type Relationships

type Relationships struct {
	// contains filtered or unexported fields
}

Relationships represents a .rels file.

func NewRelationships

func NewRelationships() Relationships

NewRelationships creates a new relationship wrapper.

func (Relationships) AddAutoRelationship

func (r Relationships) AddAutoRelationship(dt gooxml.DocType, src string, idx int, ctype string) Relationship

AddAutoRelationship adds a relationship with an automatically generated filename based off of the type. It should be preferred over AddRelationship to ensure consistent filenames are maintained.

func (r Relationships) AddHyperlink(target string) Hyperlink

AddHyperlink adds an external hyperlink relationship.

func (Relationships) AddRelationship

func (r Relationships) AddRelationship(target, ctype string) Relationship

AddRelationship adds a relationship.

func (Relationships) Clear

func (r Relationships) Clear()

Clear removes any existing relationships.

func (Relationships) FindRIDForN

func (r Relationships) FindRIDForN(i int, t string) string

FindRIDForN returns the relationship ID for the i'th relationship of type t.

func (Relationships) IsEmpty

func (r Relationships) IsEmpty() bool

IsEmpty returns true if there are no relationships.

func (Relationships) Relationships

func (r Relationships) Relationships() []Relationship

Relationships returns a slice of all of the relationships.

func (Relationships) Remove

func (r Relationships) Remove(rel Relationship) bool

Remove removes an existing relationship.

func (Relationships) X

X returns the underlying raw XML data.

type Theme

type Theme struct {
	// contains filtered or unexported fields
}

Theme is a drawingml theme.

func NewTheme

func NewTheme() Theme

NewTheme constructs a new theme.

func (Theme) X

func (t Theme) X() *dml.Theme

X returns the inner wrapped XML type.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL