pdf

null

License

License

Categories

Categories

PDF Data
GroupId

GroupId

com.craigburke.document
ArtifactId

ArtifactId

pdf
Last Version

Last Version

0.5.0
Release Date

Release Date

Type

Type

jar
Description

Description

pdf
null
Project URL

Project URL

https://github.com/craigburke/document-builder
Source Code Management

Source Code Management

https://github.com/craigburke/document-builder

Download pdf

How to add to project

<!-- https://jarcasting.com/artifacts/com.craigburke.document/pdf/ -->
<dependency>
    <groupId>com.craigburke.document</groupId>
    <artifactId>pdf</artifactId>
    <version>0.5.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.craigburke.document/pdf/
implementation 'com.craigburke.document:pdf:0.5.0'
// https://jarcasting.com/artifacts/com.craigburke.document/pdf/
implementation ("com.craigburke.document:pdf:0.5.0")
'com.craigburke.document:pdf:jar:0.5.0'
<dependency org="com.craigburke.document" name="pdf" rev="0.5.0">
  <artifact name="pdf" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.craigburke.document', module='pdf', version='0.5.0')
)
libraryDependencies += "com.craigburke.document" % "pdf" % "0.5.0"
[com.craigburke.document/pdf "0.5.0"]

Dependencies

provided (1)

Group / Artifact Type Version
org.codehaus.groovy : groovy-all jar 2.4.5

runtime (2)

Group / Artifact Type Version
com.craigburke.document : core jar 0.5.0
org.apache.pdfbox : pdfbox jar 2.0.0-RC3

Project Modules

There are no modules declared in this project.

Groovy Document Builder

A document builder for Groovy for PDF or Word documents. This is still very much a work in progress.

Note
Because of the use of Groovy traits within the project, the minimum version of Groovy required is 2.3.

Example

@Grab(group='com.craigburke.document', module='pdf', version='0.5.0')
@Grab(group='com.craigburke.document', module='word', version='0.5.0')

import com.craigburke.document.builder.PdfDocumentBuilder
import com.craigburke.document.builder.WordDocumentBuilder

def builders = [
    new PdfDocumentBuilder(new File('example.pdf')),
    new WordDocumentBuilder(new File('example.docx'))
]

String[] COLORS = ['#FF0000', '#FF7F00', '#FFFF00', '#00FF00', '#0000FF', '#4B0082', '#8B00FF']

String GROOVY_IMAGE_URL = 'http://www.craigburke.com/images/posts/groovy-logo.png'
byte[] groovyImageData = new URL(GROOVY_IMAGE_URL).bytes

builders.each { builder ->
    builder.create {
        document(font: [family: 'Helvetica', size: 14.pt], margin: [top: 0.75.inches]) {

        heading1 "Groovy Document Builder v.0.5.0", font: [color: '#990000', size: 22.pt]

        heading2 "Paragraphs"

        paragraph {
            font.size = 42.pt
            "Hello World".eachWithIndex { letter, index ->
                font.color = COLORS[ index % COLORS.size() ]
                text letter
                font.size--
            }
            lineBreak()
            text "Current font size is ${font.size}pt"
        }

        paragraph "Back to default font and aligned to the right", align: 'right'

        paragraph(margin: [left: 1.25.inches, right: 1.inch, top: 0.25.inches, bottom: 0.25.inches]) {
            font << [family: 'Times-Roman', bold: true, italic: true, color: '#333333']
            text "A paragraph with a different font and margins"
        }

        paragraph(align: 'center') {
            image(data: groovyImageData, width: 250.px, height: 125.px)
            lineBreak()
            text "Figure 1: Groovy Logo", font: [italic: true, size: 9.pt]
        }

        heading2 "Tables"

        table(width: 6.inches, padding: 4.px, border: [size: 3.px, color: '#990000']) {
            row {
                cell('Left Aligned', width:1.5.inches, align:'left')
                cell('Center Aligned', width:2.inches, align:'center')
                cell(align:'right') {
                    text 'Right Aligned'
                }
            }
        }
    }}
}

License

The core project as well as the Word document and Pdf builder are all available under the MPL2 license.

Versions

Version
0.5.0
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1