summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/back-pdf.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/back-pdf.mkiv')
-rw-r--r--tex/context/base/mkiv/back-pdf.mkiv68
1 files changed, 43 insertions, 25 deletions
diff --git a/tex/context/base/mkiv/back-pdf.mkiv b/tex/context/base/mkiv/back-pdf.mkiv
index 3e055ea83..f59b59c29 100644
--- a/tex/context/base/mkiv/back-pdf.mkiv
+++ b/tex/context/base/mkiv/back-pdf.mkiv
@@ -52,31 +52,37 @@
%D These are no-ops and don't even intercept what comes next. Maybe some day
%D I'll write a parser that maps onto \CONTEXT.
-\let\pdfcolorstack \relax
-\let\pdfcolorstackinit \relax
-\let\pdfannot \relax
-\let\pdfstartlink \relax
-\let\pdfendlink \relax
-\let\pdfoutline \relax
-\let\pdfdest \relax
-\let\pdfthread \relax
-\let\pdfstartthread \relax
-\let\pdfendthread \relax
-\let\pdffontattr \relax
-\let\pdfglyphtounicode \relax
+\unexpanded\def\unsupportedpdfprimitive#1%
+ {\writestatus{error}{the primitive \string#1\space is not supported}}
+
+\unexpanded\def\pdfcolorstack {\unsupportedpdfprimitive\pdfcolorstack}
+\unexpanded\def\pdfcolorstackinit{\unsupportedpdfprimitive\pdfcolorstackinit}
+%unexpanded\def\pdfannot {\unsupportedpdfprimitive\pdfannot}
+\unexpanded\def\pdfstartlink {\unsupportedpdfprimitive\pdfstartlink}
+\unexpanded\def\pdfendlink {\unsupportedpdfprimitive\pdfendlink}
+\unexpanded\def\pdfoutline {\unsupportedpdfprimitive\pdfoutline}
+%unexpanded\def\pdfdest {\unsupportedpdfprimitive\pdfdest}
+\unexpanded\def\pdfthread {\unsupportedpdfprimitive\pdfthread}
+\unexpanded\def\pdfstartthread {\unsupportedpdfprimitive\pdfstartthread}
+\unexpanded\def\pdfendthread {\unsupportedpdfprimitive\pdfendthread}
+\unexpanded\def\pdffontattr {\unsupportedpdfprimitive\pdffontattr}
+\unexpanded\def\pdfglyphtounicode{\unsupportedpdfprimitive\pdfglyphtounicode}
+
+\unexpanded\def\pdfannot{\clf_pdfannot}
+\unexpanded\def\pdfdest {\clf_pdfdest}
%D Here we do intercept (silently) what gets passed. One should use the
%D \CONTEXT\ interfaces instead.
-\let\pdfcatalog \relax \newtoks \pdfcatalog
-\let\pdfinfo \relax \newtoks \pdfinfo
-\let\pdfnames \relax \newtoks \pdfnames
-\let\pdftrailer \relax \newtoks \pdftrailer
-\let\pdfpageresources \relax \newtoks \pdfpageresources
-\let\pdfpageattr \relax \newtoks \pdfpageattr
-\let\pdfpagesattr \relax \newtoks \pdfpagesattr
-\let\pdfxformattr \relax \newtoks \pdfxformattr
-\let\pdfxformresources \relax \newtoks \pdfxformresources
+\let\pdfcatalog \relax \newtoks\pdfcatalog
+\let\pdfinfo \relax \newtoks\pdfinfo
+\let\pdfnames \relax \newtoks\pdfnames
+\let\pdftrailer \relax \newtoks\pdftrailer
+\let\pdfpageresources \relax \newtoks\pdfpageresources
+\let\pdfpageattr \relax \newtoks\pdfpageattr
+\let\pdfpagesattr \relax \newtoks\pdfpagesattr
+\let\pdfxformattr \relax \newtoks\pdfxformattr
+\let\pdfxformresources\relax \newtoks\pdfxformresources
%D We use the \LUA\ interface (which then permits more control over
%D possible pdf/x extensions).
@@ -86,9 +92,9 @@
%D But we still provide:
-\unexpanded\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
-\unexpanded\def\maximumpdfcompression{\clf_setpdfcompression\plusnine \plusnine }
-\unexpanded\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
+\unexpanded\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
+\unexpanded\def\maximumpdfcompression {\clf_setpdfcompression\plusnine \plusnine }
+\unexpanded\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
%D These might even become no-ops as we don't need them in \CONTEXT:
@@ -296,7 +302,8 @@
% clipping
\unexpanded\def\dostartclipping#1#2#3% we can move this to lua and only set a box here
- {\PointsToBigPoints{#2}\width
+ {\forcecolorhack
+ \PointsToBigPoints{#2}\width
\PointsToBigPoints{#3}\height
\meta_grab_clip_path{#1}\width\height{%
0 0 m %
@@ -587,3 +594,14 @@
% \stoptext
\protect \endinput
+
+% \chapter{FIRST}
+%
+% \goto{bar}[bar]
+%
+% HERE \pdfannot width 20pt height 20pt depth 20pt {/Subtype /Link /Dest (bar) /Border [1 1 1] /F 4}\par
+% HERE \pdfannot width 20pt height 20pt depth 20pt {/Subtype /Link /Dest (foo) /Border [1 1 1] /F 4}\par
+%
+% \chapter[bar]{SECOND}
+%
+% THERE \pdfdest name {foo} \par