summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def')
-rw-r--r--Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def105
1 files changed, 96 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def
index 4db7c8765c3..c0950a361a9 100644
--- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def
+++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def
@@ -20,7 +20,7 @@
%%
%% File: l3backend-testphase.dtx
\ProvidesExplFile
- {l3backend-testphase-dvips.def}{2021-06-29}{}
+ {l3backend-testphase-dvips.def}{2021-07-21}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvips}
\RequirePackage{l3ref-tmp}
\cs_generate_variant:Nn \ref_label:nn {en}
@@ -40,6 +40,7 @@
\prop_new:N \g__pdf_tmpa_prop
\tl_new:N \l__pdf_tmpa_tl
\box_new:N \l__pdf_backend_tmpa_box
+\box_new:N \l__pdf_backend_tmpb_box
\int_new:N \g__pdf_backend_resourceid_int
\int_new:N \g__pdf_backend_name_int
\int_new:N \g__pdf_backend_page_int
@@ -58,20 +59,12 @@
{
\g__kernel_pdfmanagement_thispage_shipout_code_tl
}
- \tl_gput_left:Nn\@kernel@after@shipout@lastpage
- {
- \g__kernel_pdfmanagement_lastpage_shipout_code_tl
- }
}
{
\hook_gput_code:nnn{shipout/background}{pdf}
{
\g__kernel_pdfmanagement_thispage_shipout_code_tl
}
- \hook_gput_code:nnn {shipout/lastpage} {pdf}
- {
- \g__kernel_pdfmanagement_lastpage_shipout_code_tl
- }
}
\cs_new_protected:Npx \__pdf_backend_Pages_primitive:n #1
@@ -184,6 +177,100 @@
/EMBED
}
}
+\cs_new_protected:Npn\__pdf_backend_xform_new:nnnn #1 #2 #3 #4 % #1 name, #2 attribute, #4 content
+ {
+ \int_gincr:N \g__pdf_backend_object_int
+ \int_const:cn
+ { c__pdf_backend_xform_ \tl_to_str:n {#1} _int }
+ { \g__pdf_backend_object_int }
+
+ \hbox_set:Nn \l__pdf_backend_tmpa_box
+ {
+ \bool_set_true:N \l__pdf_backend_xform_bool
+ \prop_gclear:c {\__kernel_pdfdict_name:n { g__pdf_Core/Xform/Resources/Properties }}
+ #4
+ }
+ %store the dimensions
+ \tl_const:cx
+ { c__pdf_backend_xform_wd_ \tl_to_str:n {#1} _tl }
+ { \tex_the:D \box_wd:N \l__pdf_backend_tmpa_box }
+ \tl_const:cx
+ { c__pdf_backend_xform_ht_ \tl_to_str:n {#1} _tl }
+ { \tex_the:D \box_ht:N \l__pdf_backend_tmpa_box }
+ \tl_const:cx
+ { c__pdf_backend_xform_dp_ \tl_to_str:n {#1} _tl }
+ { \tex_the:D \box_dp:N \l__pdf_backend_tmpa_box }
+ %mirror the box
+ \box_scale:Nnn \l__pdf_backend_tmpa_box {1} {-1}
+ \hbox_set:Nn\l__pdf_backend_tmpb_box
+ {
+ \__kernel_backend_postscript:x
+ {
+ gsave~currentpoint~translate~
+ mark~
+ /_objdef~{ pdf.obj \int_use:N\g__pdf_backend_object_int }\c_space_tl~
+ /BBox[
+ currentpoint~\dim_to_decimal:n{\box_dp:N \l__pdf_backend_tmpa_box}~72.27~div~VResolution~mul~add~
+ currentpoint~
+ exch~\dim_to_decimal:n{\box_wd:N \l__pdf_backend_tmpa_box}~72.27~div~Resolution~mul~add~
+ exch~\dim_to_decimal:n{\box_ht:N \l__pdf_backend_tmpa_box}~72.27~div~VResolution~mul~sub~
+ ]
+ \str_if_eq:eeF{#1}{}
+ {
+ product~(Distiller)~search~{pop~pop~pop~#2}{pop}ifelse~
+ }
+ /BP~pdfmark~grestore~
+ }
+ \box_use_drop:N\l__pdf_backend_tmpa_box
+ \__kernel_backend_postscript:n
+ {
+ mark ~ /EP~pdfmark
+ }
+ \str_if_eq:eeF{#1}{}
+ {
+ \__kernel_backend_postscript:x
+ {
+ product~(Ghostscript)~search~
+ {
+ pop~pop~pop~
+ mark~
+ { pdf.obj \int_use:c{c__pdf_backend_xform_ \tl_to_str:n {#1} _int} }
+ ~<<#2>>~/PUT~pdfmark
+ }{pop}ifelse
+ }
+ }
+ }
+ \box_set_dp:Nn \l__pdf_backend_tmpb_box { \c_zero_dim }
+ \box_set_ht:Nn \l__pdf_backend_tmpb_box { \c_zero_dim }
+ \box_set_wd:Nn \l__pdf_backend_tmpb_box { \c_zero_dim }
+ \hook_gput_code:nnn {begindocument/end}{pdfxform}
+ {
+ \mode_leave_vertical:
+ \box_use:N\l__pdf_backend_tmpb_box
+ }
+ }
+
+\cs_new_protected:Npn \__pdf_backend_xform_use:n #1
+ {
+ \hbox_set:Nn \l__pdf_backend_tmpa_box
+ {
+ \__kernel_backend_postscript:x
+ {
+ gsave~currentpoint~translate~1~-1~scale~
+ mark~{ pdf.obj \int_use:c{c__pdf_backend_xform_ \tl_to_str:n {#1} _int }}~
+ /SP~pdfmark ~ grestore
+ }
+ }
+ \box_set_wd:Nn \l__pdf_backend_tmpa_box { \pdfxform_wd:n { #1 } }
+ \box_set_ht:Nn \l__pdf_backend_tmpa_box { \pdfxform_ht:n { #1 } }
+ \box_set_dp:Nn \l__pdf_backend_tmpa_box { \pdfxform_dp:n { #1 } }
+ \box_use_drop:N \l__pdf_backend_tmpa_box
+ }
+\cs_new:Npn \__pdf_backend_xform_ref:n #1
+ {
+ { pdf.obj \int_use:c{c__pdf_backend_xform_ \tl_to_str:n {#1} _int} }
+ }
+
%% all
\prg_new_conditional:Npnn \__pdf_backend_xform_if_exist:n #1 { p , T , F , TF }
{