Documentation
¶
Overview ¶
Package api provides a module which manages a LibreOffice instance and interacts with it via the UNO (Universal Network Objects) API.
Index ¶
- Variables
- type Api
- func (a *Api) Checks() ([]health.CheckerOption, error)
- func (a *Api) Debug() map[string]interface{}
- func (a *Api) Descriptor() gotenberg.ModuleDescriptor
- func (a *Api) Extensions() []string
- func (a *Api) LibreOffice() (Uno, error)
- func (a *Api) Metrics() ([]gotenberg.Metric, error)
- func (a *Api) Pdf(ctx context.Context, logger *zap.Logger, inputPath, outputPath string, ...) error
- func (a *Api) Provision(ctx *gotenberg.Context) error
- func (a *Api) Ready() error
- func (a *Api) Start() error
- func (a *Api) StartupMessage() string
- func (a *Api) Stop(ctx context.Context) error
- func (a *Api) Validate() error
- type ApiMock
- type Options
- type Provider
- type ProviderMock
- type Uno
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidPdfFormats happens if LibreOffice cannot handle the PDF // formats option. ErrInvalidPdfFormats = errors.New("invalid PDF formats") // ErrUnoException happens when unoconverter returns exit code 5. ErrUnoException = errors.New("uno exception") // ErrRuntimeException happens when unoconverter returns exit code 6. ErrRuntimeException = errors.New("uno exception") // ErrCoreDumped happens randomly; sometimes a conversion will work as // expected, and some other time the same conversion will fail. // See https://github.com/gotenberg/gotenberg/issues/639. ErrCoreDumped = errors.New("core dumped") )
Functions ¶
This section is empty.
Types ¶
type Api ¶
type Api struct {
// contains filtered or unexported fields
}
Api is a module that provides a Uno to interact with LibreOffice.
func (*Api) Checks ¶
func (a *Api) Checks() ([]health.CheckerOption, error)
Checks adds a health check that verifies if LibreOffice is healthy.
func (*Api) Descriptor ¶
func (a *Api) Descriptor() gotenberg.ModuleDescriptor
Descriptor returns a Api's module descriptor.
func (*Api) Extensions ¶
Extensions returns the file extensions available for conversions. FIXME: don't care, take all on the route level?
func (*Api) LibreOffice ¶
LibreOffice returns a Uno for interacting with LibreOffice.
func (*Api) Pdf ¶
func (a *Api) Pdf(ctx context.Context, logger *zap.Logger, inputPath, outputPath string, options Options) error
Pdf converts a document to PDF.
func (*Api) Start ¶
Start does nothing if auto-start is not enabled. Otherwise, it starts a LibreOffice instance.
func (*Api) StartupMessage ¶
StartupMessage returns a custom startup message.
type ApiMock ¶
type ApiMock struct {
PdfMock func(ctx context.Context, logger *zap.Logger, inputPath, outputPath string, options Options) error
ExtensionsMock func() []string
}
ApiMock is a mock for the Uno interface.
func (*ApiMock) Extensions ¶
type Options ¶
type Options struct {
// Password specifies the password for opening the source file.
Password string
// Landscape allows changing the orientation of the resulting PDF.
Landscape bool
// PageRanges allows selecting the pages to convert.
PageRanges string
// UpdateIndexes specifies whether to update the indexes before conversion,
// keeping in mind that doing so might result in missing links in the final
// PDF.
UpdateIndexes bool
// ExportFormFields specifies whether form fields are exported as widgets
// or only their fixed print representation is exported.
ExportFormFields bool
// AllowDuplicateFieldNames specifies whether multiple form fields exported
// are allowed to have the same field name.
AllowDuplicateFieldNames bool
// ExportBookmarks specifies if bookmarks are exported to PDF.
ExportBookmarks bool
// ExportBookmarksToPdfDestination specifies that the bookmarks contained
// in the source LibreOffice file should be exported to the PDF file as
// Named Destination.
ExportBookmarksToPdfDestination bool
// ExportPlaceholders exports the placeholder fields visual markings only.
// The exported placeholder is ineffective.
ExportPlaceholders bool
// ExportNotes specifies if notes are exported to PDF.
ExportNotes bool
// ExportNotesPages specifies if notes pages are exported to PDF.
// Notes pages are available in Impress documents only.
ExportNotesPages bool
// ExportOnlyNotesPages specifies if the property ExportNotesPages is set
// to true if only notes pages are exported to PDF.
ExportOnlyNotesPages bool
// ExportNotesInMargin specifies if notes in the margin are exported to
// PDF.
ExportNotesInMargin bool
// ConvertOooTargetToPdfTarget specifies that the target documents with
// .od[tpgs] extension will have that extension changed to .pdf when the
// link is exported to PDF. The source document remains untouched.
ConvertOooTargetToPdfTarget bool
// ExportLinksRelativeFsys specifies that the file system related
// hyperlinks (file:// protocol) present in the document will be exported
// as relative to the source document location.
ExportLinksRelativeFsys bool
// ExportHiddenSlides exports, for LibreOffice Impress, slides that are not
// included in slide shows.
ExportHiddenSlides bool
// SkipEmptyPages specifies that automatically inserted empty pages are
// suppressed. This option is active only if storing Writer documents.
SkipEmptyPages bool
// AddOriginalDocumentAsStream specifies that a stream is inserted to the
// PDF file which contains the original document for archiving purposes.
AddOriginalDocumentAsStream bool
// SinglePageSheets ignores each sheet’s paper size, print ranges and
// shown/hidden status and puts every sheet (even hidden sheets) on exactly
// one page.
SinglePageSheets bool
// LosslessImageCompression specifies if images are exported to PDF using
// a lossless compression format like PNG or compressed using the JPEG
// format.
LosslessImageCompression bool
// Quality specifies the quality of the JPG export. A higher value produces
// a higher-quality image and a larger file. Between 1 and 100.
Quality int
// ReduceImageResolution specifies if the resolution of each image is
// reduced to the resolution specified by the property MaxImageResolution.
ReduceImageResolution bool
// MaxImageResolution, if the property ReduceImageResolution is set to
// true, tells if all images will be reduced to the given value in DPI.
// Possible values are: 75, 150, 300, 600 and 1200.
MaxImageResolution int
// PdfFormats allows to convert the resulting PDF to PDF/A-1b, PDF/A-2b,
// PDF/A-3b and PDF/UA.
PdfFormats gotenberg.PdfFormats
}
Options gathers available options when converting a document to PDF. See: https://help.libreoffice.org/latest/en-US/text/shared/guide/pdf_params.html.
func DefaultOptions ¶ added in v8.8.0
func DefaultOptions() Options
DefaultOptions returns the default values for Options.
type Provider ¶
Provider is a module interface that exposes a method for creating a Uno for other modules.
func (m *YourModule) Provision(ctx *gotenberg.Context) error {
provider, _ := ctx.Module(new(libreofficeapi.Provider))
libreOffice, _ := provider.(api.Provider).LibreOffice()
}
type ProviderMock ¶
ProviderMock is a mock for the Provider interface.
func (*ProviderMock) LibreOffice ¶
func (provider *ProviderMock) LibreOffice() (Uno, error)