use PDF/A tools from updated base image (pdftools.mk)
This commit is contained in:
parent
e72b5b6730
commit
a48e82ba8b
9 changed files with 10 additions and 96 deletions
|
@ -1,11 +1,6 @@
|
|||
FROM docker.io/ldericher/autodoc:diagram
|
||||
|
||||
RUN set -ex; \
|
||||
# install pdfa tools
|
||||
ln -s \
|
||||
/workspaces/lev-templates/deploy/pdfa \
|
||||
/opt/ \
|
||||
; \
|
||||
# install TeXoffice
|
||||
ln -s \
|
||||
/workspaces/lev-templates/deploy/texoffice \
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"configureZshAsDefaultShell": "true"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/git:1": {},
|
||||
"ghcr.io/devcontainers-contrib/features/git-lfs:1": {},
|
||||
"ghcr.io/devcontainers/features/git-lfs:1": {},
|
||||
"ghcr.io/devcontainers-extra/features/apt-get-packages:1": {
|
||||
"packages": "pdftk,poppler-utils"
|
||||
}
|
||||
|
@ -22,7 +22,8 @@
|
|||
// Ensure git is installed before git-lfs
|
||||
"overrideFeatureInstallOrder": [
|
||||
"ghcr.io/devcontainers/features/common-utils",
|
||||
"ghcr.io/devcontainers/features/git"
|
||||
"ghcr.io/devcontainers/features/git",
|
||||
"ghcr.io/devcontainers/features/git-lfs"
|
||||
],
|
||||
|
||||
// Configure tool-specific properties.
|
||||
|
|
1
.gitattributes
vendored
1
.gitattributes
vendored
|
@ -1,3 +1,2 @@
|
|||
deploy/pdfa/bin/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
1
.vscode/extensions.json
vendored
1
.vscode/extensions.json
vendored
|
@ -3,6 +3,7 @@
|
|||
"tomoki1207.pdf"
|
||||
],
|
||||
"unwantedRecommendations": [
|
||||
"ms-azuretools.vscode-containers",
|
||||
"ms-vscode.makefile-tools"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
FROM docker.io/ldericher/autodoc:0.8-diagram
|
||||
|
||||
# install pdfa tools as per https://stackoverflow.com/a/39420880
|
||||
COPY --chown=root:root \
|
||||
deploy/pdfa \
|
||||
/opt/pdfa
|
||||
FROM docker.io/ldericher/autodoc:diagram
|
||||
|
||||
# install TeXoffice
|
||||
COPY --chown=root:root \
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
%!
|
||||
% This prefix file for creating a PDF/A document is derived from
|
||||
% the sample included with Ghostscript 9.07, released under the
|
||||
% GNU Affero General Public License.
|
||||
% Modified 4/15/2013 by MCB Systems.
|
||||
|
||||
% Feel free to modify entries marked with "Customize".
|
||||
|
||||
% This assumes an ICC profile to reside in the file (AdobeRGB1998.icc),
|
||||
% unless the user modifies the corresponding line below.
|
||||
|
||||
% The color space described by the ICC profile must correspond to the
|
||||
% ProcessColorModel specified when using this prefix file (GRAY with
|
||||
% DeviceGray, RGB with DeviceRGB, and CMYK with DeviceCMYK).
|
||||
|
||||
% Define entries in the document Info dictionary :
|
||||
|
||||
/ICCProfile (/opt/pdfa/bin/AdobeRGB1998.icc) % Customize.
|
||||
def
|
||||
|
||||
[ /Title (Title) % Customize.
|
||||
/DOCINFO pdfmark
|
||||
|
||||
% Define an ICC profile :
|
||||
|
||||
[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
|
||||
[{icc_PDFA} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {systemdict /ProcessColorModel get /DeviceRGB eq {3} {4} ifelse} ifelse >> /PUT pdfmark
|
||||
[{icc_PDFA} ICCProfile (r) file /PUT pdfmark
|
||||
|
||||
% Define the output intent dictionary :
|
||||
|
||||
[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark
|
||||
[{OutputIntent_PDFA} <<
|
||||
/Type /OutputIntent % Must be so (the standard requires).
|
||||
/S /GTS_PDFA1 % Must be so (the standard requires).
|
||||
/DestOutputProfile {icc_PDFA} % Must be so (see above).
|
||||
/OutputConditionIdentifier (default_rgb) % Customize
|
||||
>> /PUT pdfmark
|
||||
[{Catalog} <</OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark
|
BIN
deploy/pdfa/bin/AdobeRGB1998.icc
(Stored with Git LFS)
BIN
deploy/pdfa/bin/AdobeRGB1998.icc
(Stored with Git LFS)
Binary file not shown.
BIN
deploy/pdfa/bin/gs-919-linux_x86_64
(Stored with Git LFS)
BIN
deploy/pdfa/bin/gs-919-linux_x86_64
(Stored with Git LFS)
Binary file not shown.
|
@ -1,3 +1,5 @@
|
|||
include /usr/local/share/autodoc/pdftools.mk
|
||||
|
||||
# compile markdown using pandoc
|
||||
# params:
|
||||
# 1: input file
|
||||
|
@ -14,40 +16,6 @@ compile_md = pandoc \
|
|||
$(PANDOCFLAGS) \
|
||||
--output $(4)
|
||||
|
||||
GSFLAGS := \
|
||||
-sDEVICE=pdfwrite \
|
||||
-dNOOUTERSAVE \
|
||||
-dNOPAUSE \
|
||||
-dQUIET \
|
||||
-dBATCH
|
||||
|
||||
# post-process and compress PDF files
|
||||
# params:
|
||||
# 1: input file
|
||||
# 2: output file
|
||||
postprocess_pdf = gs \
|
||||
$(GSFLAGS) \
|
||||
-sPAPERSIZE=a4 \
|
||||
-dFIXEDMEDIA \
|
||||
-dPDFFitPage \
|
||||
-dCompatibilityLevel=1.7 \
|
||||
-dPDFSETTINGS=/ebook \
|
||||
-sOutputFile=$(2) \
|
||||
$(1)
|
||||
|
||||
# convert PDF to PDF/A 2-b
|
||||
# params:
|
||||
# 1: input file
|
||||
# 2: output file
|
||||
convert_pdfa = /opt/pdfa/bin/gs-919-linux_x86_64 \
|
||||
$(GSFLAGS) \
|
||||
-dPDFA=2 \
|
||||
-sProcessColorModel=DeviceRGB \
|
||||
-dPDFACompatibilityPolicy=1 \
|
||||
-sOutputFile=$(2) \
|
||||
/opt/pdfa/PDFA_def.ps \
|
||||
$(1)
|
||||
|
||||
# convert markdown to LaTeX
|
||||
# params:
|
||||
# 1: input file
|
||||
|
@ -60,10 +28,10 @@ md2tex = $(call compile_md,$(1),$(2),latex,$(3))
|
|||
# 1: input file
|
||||
# 2: pandoc template
|
||||
# 3: output file
|
||||
md2pdf = $(call compile_md,$(1),$(2),pdf,-) | $(call postprocess_pdf,-,$(3))
|
||||
md2pdf = $(call compile_md,$(1),$(2),pdf,-) | $(call pdftools_pdfcat,-,$(3))
|
||||
|
||||
# convert markdown to PDF/A 2-b
|
||||
# 1: input file
|
||||
# 2: pandoc template
|
||||
# 3: output file
|
||||
md2pdfa = $(call md2pdf,$(1),$(2),-) | $(call convert_pdfa,-,$(3))
|
||||
md2pdfa = $(call md2pdf,$(1),$(2),-) | $(call pdftools_mkpdfa,3,-,$(3))
|
||||
|
|
Loading…
Reference in a new issue