summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/intopdf/intopdf.sty
blob: 9884757bc6d14352bd21de7a184cb177a02d8ab6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
%%
%% This is file `intopdf.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% intopdf.dtx  (with options: `package')
%% 
%% Copyright (C) 2020 by Marcel Krueger
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. The latest version of this license is in:
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3,xparse}
\ProvidesExplPackage
  {intopdf}
  {2022/07/21}
  {v0.4.1}
  {Embed non-PDF files into PDF with hyperlink}

\RequirePackage{hyperref}
\str_new:N \l__intopdf_mime_str
\str_new:N \l__intopdf_filename_str
\str_new:N \l__intopdf_description_str

\cs_new_protected:Nn\intopdf_attach_link:nnnnn{
  \leavevmode
  \str_set_convert:Nnnn \l__intopdf_mime_str { #3 } { default } { utf8/name }
  \pdf_object_unnamed_write:nx {fstream} { {
    /Subtype /\l__intopdf_mime_str
  } { #2 } }
  \str_set_convert:Nnnn \l__intopdf_filename_str { #1 } { default } { utf8/string }
  \str_set_convert:Nnnn \l__intopdf_filename_unicode_str { #1 } { default } { utf16/string }
  \str_set_convert:Nnnn \l__intopdf_description_str { #4 } { default } { utf16/string }
  \pdf_object_unnamed_write:nx {dict} {
    /Type /Filespec
    /F (\l__intopdf_filename_str)
    /UF (\l__intopdf_filename_unicode_str)
    /EF << /F~\pdf_object_ref_last: >>
    /Desc (\l__intopdf_description_str)
  }
  \__pdf_backend_link_begin_user:nnw {
    \Hy@setpdfborder
    \tl_if_empty:NF\@pdfhighlight{
      /H\@pdfhighlight
    }
    \cs_if_free:NF\@urlbordercolor{
      /C[\@urlbordercolor]
    }
  }{
    /Subtype /Link
  }
    \__pdf_backend_link_begin_user:nnw { } {
      /Subtype /FileAttachment
      /FS~\pdf_object_ref_last:
      /F~416
      /CA~0
      /Contents (\l__intopdf_description_str)
    }
      #5
    \__pdf_backend_link_end:
  \__pdf_backend_link_end:
}
\cs_new_protected:Npn \intopdf_attach_link:nnnn #1{
  \intopdf_attach_link:nnnnn{#1}{#1}
}
\NewDocumentCommand\attachandlink{O{#2}mr[]mm}{
  \intopdf_attach_link:nnnnn{#1}{#2}{#3}{#4}{#5}
}
\endinput
%%
%% End of file `intopdf.sty'.