Skip to content

Commit 4e1a9fb

Browse files
committed
feat: cover pdfeasy option in runner setter
1 parent fca0d9e commit 4e1a9fb

5 files changed

Lines changed: 25 additions & 3 deletions

File tree

demo/public/test.png

2.11 MB
Loading

demo/src/main.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ app.innerHTML = `
88
`
99

1010
pdfeasy.new({
11+
cover: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=',
1112
document: {
1213
margins: {
13-
top: 40,
14-
bottom: 40,
14+
top: 80,
15+
bottom: 80,
1516
left: 80,
1617
right: 80
1718
}

src/pipe/factory.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@ import { Content, ContentText, ContentImage, PDFEasyDefaults } from '../types'
22
import { getCorrectFontFamily } from './transform'
33
import { getImageRaw, SvgToPNG } from '../content/image'
44

5+
export const resolveCover = async (app: PDFKit.PDFDocument, based: string) => {
6+
const { raw } = await getImageRaw(based)
7+
8+
app.image(raw, 0, 0, {
9+
height: app.page.height,
10+
width: app.page.width,
11+
})
12+
13+
app.flushPages()
14+
}
15+
516
export const resolveContent = async (
617
app: PDFKit.PDFDocument,
718
defaults: PDFEasyDefaults,

src/runner/pdfeasy.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import PDFDocument from 'pdfkit'
22
import blobStream from 'blob-stream'
33
import mitt from 'mitt'
44
import { saveAs } from 'file-saver'
5-
import { resolveContent } from '../pipe/factory'
5+
import { resolveContent, resolveCover } from '../pipe/factory'
66
import { pdfDefaults } from '../utils/defines'
77
import {
88
Content,
@@ -104,6 +104,10 @@ export default class {
104104
* @returns Promise<void>
105105
*/
106106
private pipeline = async () => {
107+
if (this.options?.cover) {
108+
await resolveCover(this.pdfkit as typeof PDFDocument, this.options.cover)
109+
}
110+
107111
for (const content of this.contents) {
108112
await runPluginBackground(this)
109113

@@ -156,6 +160,7 @@ export default class {
156160
public new = (options?: RunnerOptions) => {
157161
this.reset()
158162
this.options = {
163+
cover: options?.cover,
159164
exports: options?.exports,
160165
advanced: {
161166
fontsPurge:

src/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,11 @@ export interface RunnerOptionsExports {
192192
}
193193

194194
export interface RunnerOptions {
195+
/**
196+
* Cover URL or Base64
197+
*/
198+
cover?: string
199+
195200
/**
196201
* Advanced PDF Easy Options
197202
*

0 commit comments

Comments
 (0)