diff options
author | Karl Berry <karl@freefriends.org> | 2022-06-07 20:32:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-06-07 20:32:22 +0000 |
commit | d7224298843441c3e08e6c84a5eb3cd8e93e7c62 (patch) | |
tree | f9519802ab424bba0eb192ec25867b81d47f5858 /Master | |
parent | 1029e9f5a5b1ad7faa4657093c757352e83cb308 (diff) |
pax (7jun22)
git-svn-id: svn://tug.org/texlive/trunk@63508 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/pax/README | 6 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/pax/pax.jar | bin | 11465 -> 5518276 bytes | |||
-rwxr-xr-x | Master/texmf-dist/scripts/pax/pdfannotextractor.pl | 243 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pax/Makefile | 10 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pax/build.xml | 76 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pax/lib/commons-logging.jar | bin | 0 -> 57930 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/pax/lib/pdfbox.jar | bin | 0 -> 5449162 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/pax/src/PDFAnnotExtractor.java | 16 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pax/src/StringVisitor.java | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pax/pax.sty | 7 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 6 |
11 files changed, 93 insertions, 275 deletions
diff --git a/Master/texmf-dist/doc/latex/pax/README b/Master/texmf-dist/doc/latex/pax/README index 30ba2dba1e4..2143f73fa90 100644 --- a/Master/texmf-dist/doc/latex/pax/README +++ b/Master/texmf-dist/doc/latex/pax/README @@ -1,5 +1,4 @@ -README for project pax (PDFAnnotExtractor), 2012/04/23 v0.1l - +README for project pax (PDFAnnotExtractor) TABLE OF CONTENTS ================= @@ -245,3 +244,6 @@ I. History problems with incompatible `xkeyval'. 2012/04/18 v0.1l * Option --version added to pdfannotextractor.pl. +2022/06/07 v2022/06/07 + * Port to recent pdfanotator + * New developper Bastien Roucariès <rouca !at! debian.org> diff --git a/Master/texmf-dist/scripts/pax/pax.jar b/Master/texmf-dist/scripts/pax/pax.jar Binary files differindex 36371e27e62..e26079b01e9 100644 --- a/Master/texmf-dist/scripts/pax/pax.jar +++ b/Master/texmf-dist/scripts/pax/pax.jar diff --git a/Master/texmf-dist/scripts/pax/pdfannotextractor.pl b/Master/texmf-dist/scripts/pax/pdfannotextractor.pl index 085dc43c5d3..c5d5cf2a380 100755 --- a/Master/texmf-dist/scripts/pax/pdfannotextractor.pl +++ b/Master/texmf-dist/scripts/pax/pdfannotextractor.pl @@ -39,18 +39,15 @@ ${title}Syntax: $program [options] <PDF files[.pdf]> Options: --help print usage --version print version number - --install try installing PDFBox library --debug debug informations END_OF_USAGE my $help = 0; my $debug = 0; -my $install = 0; my $opt_version = 0; use Getopt::Long; GetOptions( 'debug!' => \$debug, - 'install!' => \$install, 'help!' => \$help, 'version!' => \$opt_version, ) or die $usage; @@ -59,24 +56,13 @@ if ($opt_version) { print "$name $date v$version\n"; exit(0); } -!$install and (@ARGV >= 1 or die $usage); +(@ARGV >= 1 or die $usage); print $title; my $error = '!!! Error:'; -my $url_pdfbox = 'http://prdownloads.sourceforge.net/pdfbox/PDFBox-0.7.3.zip?download'; -my $size_pdfbox_zip = 22769102; -my $size_pdfbox_jar = 3321771; -my $name_pdfbox_jar = 'PDFBox-0.7.3.jar'; -my $entry_pdfbox = "PDFBox-0.7.3/lib/$name_pdfbox_jar"; my $pdfbox = 'PDFBox'; - my $prg_kpsewhich = 'kpsewhich'; -my $prg_wget = 'wget'; -my $prg_curl = 'curl'; -my $prg_unzip = 'unzip'; -my $prg_texhash = 'texhash'; -my $prg_mktexlsr = 'mktexlsr'; my $prg_java = 'java'; my %prg; @@ -175,34 +161,13 @@ sub find_jar_pax () { } } -sub find_jar_pdfbox () { - return if $path_jar_pdfbox; - foreach my $dir (@dir_jar) { - foreach my $jar (@jar_pdfbox) { - my $path = "$dir/$jar"; - if (-f $path) { - $path_jar_pdfbox = $path; - debug $jar_pdfbox, $path_jar_pdfbox; - return; - } - } - } - foreach my $jar_pdfbox (@jar_pdfbox) { - $path_jar_pdfbox = find_jar $jar_pdfbox; - last if $path_jar_pdfbox; - } -} sub launch_pax () { check_prg $prg_java, 1; my @cmd = ($prg_java); - my $sep = $is_win ? ';' : ':'; - my $cp = "$path_jar_pax"; - $cp .= "$sep$path_jar_pdfbox" if $path_jar_pdfbox; - $cp .= "$sep$classpath" if $classpath; push @cmd, '-cp'; - push @cmd, $cp; - push @cmd, $main_class; + push @cmd, $path_jar_pax; + push @cmd, 'pax.PDFAnnotExtractor'; push @cmd, @ARGV; debug 'System', "@cmd"; system @cmd; @@ -222,212 +187,10 @@ sub launch_pax () { return $exit_code; } -# install part - -sub expand_var ($) { - my $var = shift; - check_prg $prg_kpsewhich, 1; - my $cmd = $prg_kpsewhich - . " --progname $program" - . ' --expand-var'; - $cmd .= $is_win ? " \$$var" : " \\\$$var"; - debug 'Backticks', $cmd; - my $path = `$cmd`; - if ($? == 0) { - chomp $path; - debug 'Exit code', '0/success'; - debug "\$$var", $path; - return $path; - } - if ($? == -1) { - die "!!! Error: Cannot execute `$prg_kpsewhich' ($!)!\n"; - } - if ($? & 127) { - die "!!! Error: `$prg_kpsewhich' died with signal " . ($? & 127) - . (($? & 128) ? ' with coredump' : '') . "!\n"; - } - debug 'Exit code', ($? >> 8); - return ''; -} - -sub ensure_dir ($) { - my $dir = shift; - return if -d $dir; - mkdir $dir or die "$error Cannot create directory `$dir'!\n"; - debug 'mkdir', $dir; -} - -sub file_size ($) { - my $file = shift; - return -1 unless -f $file; - return (stat $file)[7]; -} - -if ($install) { - # Can PDFBox already be found? - find_jar_pdfbox; - if ($path_jar_pdfbox) { - print "* Nothing to do, because $pdfbox is already found:\n" - . " $path_jar_pdfbox\n"; - exit(0); - } - - # Find TEXMFVAR - my $tds_root; - foreach my $var ('TEXMFVAR', 'VARTEXMF') { - $tds_root = expand_var $var; - last if $tds_root; - } - $tds_root or die "$error Cannot find settings for `TEXMFVAR' or `VARTEXMF'!\n"; - - # Create directories - ensure_dir $tds_root; - my $tds_pax = $tds_root; - $tds_pax =~ s/(\/*)$/\/scripts/; - ensure_dir $tds_pax; - $tds_pax .= '/pax'; - ensure_dir $tds_pax; - my $tds_pax_lib = "$tds_pax/lib"; - ensure_dir $tds_pax_lib; - - # Download - my $dest_file = "$tds_pax/PDFBox-0.7.3.zip"; - if (file_size $dest_file == $size_pdfbox_zip) { - debug "$pdfbox archive found", $dest_file; - } - else { - my @cmd; - my $prg_download; - check_prg $prg_wget, 0; - if ($prg{$prg_wget}) { - $prg_download = $prg_wget; - push @cmd, $prg_wget; - push @cmd, '-O'; - } - else { - check_prg $prg_curl, 0; - $prg{$prg_curl} or die "$error Cannot find programs `wget' or `curl'" - . " for downloading!\n"; - $prg_download = $prg_curl; - push @cmd, $prg_curl; - push @cmd, '-L'; - push @cmd, '-o'; - } - push @cmd, $dest_file; - push @cmd, $url_pdfbox; - debug 'System', "@cmd"; - system @cmd; - if ($? == 0) { - debug 'Result', 'ok'; - } - elsif ($? == -1) { - die "$error Cannot execute `$prg_download' ($!)!\n"; - } - elsif ($? & 127) { - die "$error `$prg_download' died with signal " . ($? & 127) - . (($? & 128) ? ' with coredump' : '') . "!\n"; - } - else { - my $exit_code = $? >> 8; - die "$error `$prg_download' returns error code `$exit_code'!\n"; - } - -f $dest_file or die "$error Download failed!\n"; - my $size = file_size $dest_file; - $size == $size_pdfbox_zip - or die "$error File size of $dest_file is $size,\n" - . "but expected size is $size_pdfbox_zip!\n"; - } - print "* Downloaded: $dest_file\n"; - - # Unpack jar file - check_prg $prg_unzip, 0; - if ($prg{$prg_unzip}) { - my @cmd = ( - $prg_unzip, - '-j', - '-d', - $tds_pax_lib, - $dest_file, - $entry_pdfbox - ); - debug 'System', "@cmd"; - system @cmd; - if ($? == 0) { - debug 'Result', 'ok'; - } - elsif ($? == -1) { - die "$error Cannot execute `$prg_unzip' ($!)!\n"; - } - elsif ($? & 127) { - die "$error `$prg_unzip' died with signal " . ($? & 127) - . (($? & 128) ? ' with coredump' : '') . "!\n"; - } - else { - my $exit_code = $? >> 8; - die "$error `$prg_unzip' returns error code `$exit_code'!\n"; - } - } - else { - die "$error `$prg_unzip' not found!\n"; - } - my $dest_jar = "$tds_pax_lib/$name_pdfbox_jar"; - -f $dest_jar or die "$error Unpacking failed!\n"; - my $size = file_size $dest_jar; - $size == $size_pdfbox_jar - or die "$error File size of $dest_jar is $size,\n" - . "but expected size is $size_pdfbox_jar!\n"; - - print "* Unpacked: $dest_jar\n"; - - # Update TDS data base - my $prg_tds_update; - check_prg $prg_texhash, 0; - if ($prg{$prg_texhash}) { - $prg_tds_update = $prg_texhash; - } - else { - check_prg $prg_mktexlsr, 0; - $prg{$prg_mktexlsr} or die "$error Neither `$prg_texhash' nor `$prg_mktexlsr' found!\n"; - $prg_tds_update = $prg_mktexlsr; - } - my @cmd = ($prg_tds_update, $tds_root); - debug 'System', "@cmd"; - system @cmd; - if ($? == 0) { - debug 'Result', 'ok'; - } - elsif ($? == -1) { - die "$error Cannot execute `$prg_tds_update' ($!)!\n"; - } - elsif ($? & 127) { - die "$error `$prg_tds_update' died with signal " . ($? & 127) - . (($? & 128) ? ' with coredump' : '') . "!\n"; - } - else { - my $exit_code = $? >> 8; - die "$error `$prg_tds_update' returns error code `$exit_code'!\n"; - } - - # Check installation result - find_jar_pdfbox; - if ($path_jar_pdfbox) { - exit(0); - } - die "$error Installation failed, because $pdfbox library cannot be found!\n"; -} - # main program my $ret = 0; find_jar_pax; -if ($pdfbox_in_classpath) { - debug 'PDFBox in CLASSPATH', 'yes'; -} -else { - find_jar_pdfbox; - $path_jar_pdfbox or die "$error Cannot find $pdfbox library!\n" - . "See README and option `--install'.\n"; -} exit launch_pax; __END__ diff --git a/Master/texmf-dist/source/latex/pax/Makefile b/Master/texmf-dist/source/latex/pax/Makefile new file mode 100644 index 00000000000..944ee43ded6 --- /dev/null +++ b/Master/texmf-dist/source/latex/pax/Makefile @@ -0,0 +1,10 @@ +distctan: + cd .. && mkdir pax + cd .. && rsync -rL `pwd`/* --exclude '.git/' --exclude 'build/' --exclude '*.zip' -L pax/ + cd ../pax/source && ant distctan + rm -rf ../pax/source/build + rm -rf ../pax/pax + cd .. && zip -r pax-`date +"%Y%m%d"`.zip pax/ + +clean: + cd .. && rm -rf pax diff --git a/Master/texmf-dist/source/latex/pax/build.xml b/Master/texmf-dist/source/latex/pax/build.xml index 230cd3e59d6..0a7eae3ddfc 100644 --- a/Master/texmf-dist/source/latex/pax/build.xml +++ b/Master/texmf-dist/source/latex/pax/build.xml @@ -6,44 +6,82 @@ <property name="src" location="src"/> <property name="build" location="build"/> - <property name="dist" location="."/> + <property name="dist" location="../scripts/"/> <property name="pdfbox.home" location="${basedir}"/> <!-- or somewhere else --> - <property name="pdfbox.name" value="PDFBox-0.7.2.jar"/> <target name="init"> <mkdir dir="${build}"/> </target> <target name="compile" - depends="init" - description="compile the source" - > - <javac srcdir="${src}" destdir="${build}" target="1.4" source="1.4"> + depends="init" + description="compile the source" + > + <javac srcdir="${src}" destdir="${build}"> <classpath> - <!-- try with and without subdirectory `lib' --> - <pathelement location="${pdfbox.home}/lib/${pdfbox.name}"/> - <pathelement location="${pdfbox.home}/${pdfbox.name}"/> + <pathelement location="${basedir}/lib/pdfbox.jar"/> + <pathelement location="${basedir}/lib/commons-logging.jar"/> </classpath> </javac> </target> + <path id="build.classpath"> + <fileset dir="${basedir}"> + <include name="lib/*.jar"/> + </fileset> + </path> + + <pathconvert property="manifest.classpath" pathsep=" "> + <path refid="build.classpath"/> + <mapper> + <chainedmapper> + <flattenmapper/> + <globmapper from="*.jar" to="lib/*.jar"/> + </chainedmapper> + </mapper> + </pathconvert> + + <target name="distctan" + depends="compile" + description="generate the distribution ctan" + > + <mkdir dir="${dist}"/> + <jar jarfile="${dist}/${ant.project.name}.jar" + manifest="${src}/MANIFEST.MF" + basedir="${build}" + includes="pax/**" > + <zipgroupfileset dir="lib" includes="*.jar"/> + </jar> + </target> + <target name="dist" - depends="compile" - description="generate the distribution" - > + depends="compile" + description="generate the distribution" + > <mkdir dir="${dist}"/> + <mkdir dir="${dist}/lib"/> + <copy todir="${dist}/lib" flatten="true"> + <fileset dir="lib"> + <include name="*.jar" /> + </fileset> + </copy> <jar jarfile="${dist}/${ant.project.name}.jar" - manifest="${src}/MANIFEST.MF" - basedir="${build}" - includes="pax/**" - /> + manifest="${src}/MANIFEST.MF" + basedir="${build}" + includes="pax/**" > + <manifest> + <attribute name="Class-Path" value="${manifest.classpath}" /> + </manifest> + </jar> </target> + <target name="clean" - description="clean up" - > + description="clean up" + > <delete dir="${build}"/> - <delete file="${dist}/${ant.project.name}.jar"/> + <delete dir="${dist}/lib"/> + <delete file="${dist}/pax.jar" /> </target> </project> diff --git a/Master/texmf-dist/source/latex/pax/lib/commons-logging.jar b/Master/texmf-dist/source/latex/pax/lib/commons-logging.jar Binary files differnew file mode 100644 index 00000000000..a9c6522d91c --- /dev/null +++ b/Master/texmf-dist/source/latex/pax/lib/commons-logging.jar diff --git a/Master/texmf-dist/source/latex/pax/lib/pdfbox.jar b/Master/texmf-dist/source/latex/pax/lib/pdfbox.jar Binary files differnew file mode 100644 index 00000000000..b49ce4e1813 --- /dev/null +++ b/Master/texmf-dist/source/latex/pax/lib/pdfbox.jar diff --git a/Master/texmf-dist/source/latex/pax/src/PDFAnnotExtractor.java b/Master/texmf-dist/source/latex/pax/src/PDFAnnotExtractor.java index 868dadaa80c..d1350574679 100644 --- a/Master/texmf-dist/source/latex/pax/src/PDFAnnotExtractor.java +++ b/Master/texmf-dist/source/latex/pax/src/PDFAnnotExtractor.java @@ -24,14 +24,14 @@ import java.io.*; import java.text.*; import java.util.*; -import org.pdfbox.cos.*; -import org.pdfbox.pdfparser.*; -import org.pdfbox.pdmodel.*; -import org.pdfbox.pdmodel.common.*; -import org.pdfbox.pdmodel.interactive.action.*; -import org.pdfbox.pdmodel.interactive.action.type.*; -import org.pdfbox.pdmodel.interactive.annotation.*; -import org.pdfbox.pdmodel.interactive.documentnavigation.destination.*; +import org.apache.pdfbox.cos.*; +import org.apache.pdfbox.pdfparser.*; +import org.apache.pdfbox.pdmodel.*; +import org.apache.pdfbox.pdmodel.common.*; +import org.apache.pdfbox.pdmodel.interactive.action.*; +import org.apache.pdfbox.pdmodel.interactive.action.type.*; +import org.apache.pdfbox.pdmodel.interactive.annotation.*; +import org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.*; public class PDFAnnotExtractor implements Constants { diff --git a/Master/texmf-dist/source/latex/pax/src/StringVisitor.java b/Master/texmf-dist/source/latex/pax/src/StringVisitor.java index 485757e36fa..1460ade25c2 100644 --- a/Master/texmf-dist/source/latex/pax/src/StringVisitor.java +++ b/Master/texmf-dist/source/latex/pax/src/StringVisitor.java @@ -22,8 +22,8 @@ package pax; import java.io.*; import java.util.*; -import org.pdfbox.cos.*; -import org.pdfbox.exceptions.*; +import org.apache.pdfbox.cos.*; +import org.apache.pdfbox.exceptions.*; public class StringVisitor implements ICOSVisitor { diff --git a/Master/texmf-dist/tex/latex/pax/pax.sty b/Master/texmf-dist/tex/latex/pax/pax.sty index 5a0b7568bf4..1ea11b7fdd8 100644 --- a/Master/texmf-dist/tex/latex/pax/pax.sty +++ b/Master/texmf-dist/tex/latex/pax/pax.sty @@ -1,5 +1,6 @@ %% pax.sty %% Copyright 2006-2008, 2011, 2012 Heiko Oberdiek +%% Copyright 2020 Bastien Roucariès % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -11,14 +12,14 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is Heiko Oberdiek. +% The Current Maintainer of this work is Bastien Roucariès % % This work consists of the file pax.sty. % See README for more details and documentation. % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pax}% - [2012/04/18 v0.1l Annotation support for PDF graphics (HO)]% + [2020/04/06 v0.2 Annotation support for PDF graphics (HO)]% \RequirePackage{ifpdf} \ifpdf @@ -106,7 +107,7 @@ \PAX@defaultbp\PAX@vury{#4}% \edef\PAX@page@llx{\dimexpr\PAX@page@llx+\PAX@vllx\relax}% \edef\PAX@page@lly{\dimexpr\PAX@page@lly+\PAX@vlly\relax}% - \edef\PAX@page@urx{\dimexpr\PAX@page@llx+\PAX@vlly\relax}% + \edef\PAX@page@urx{\dimexpr\PAX@page@llx+\PAX@vurx\relax}% \edef\PAX@page@ury{\dimexpr\PAX@page@lly+\PAX@vury\relax}% } \def\PAX@trim#1 #2 #3 #4\\{% diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 6059778d4ab..8750d49d47b 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1584,6 +1584,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'pictex' => '&PREHOOK_pictex', 'pkuthss' => '&PREHOOK_flatten1', 'plex-otf' => '&PREHOOK_flatten1', + 'pax' => '&PREHOOK_flatten1', 'pmx' => '&PREHOOK_pmx', 'prosper' => '&PREHOOK_prosper', 'skb' => '&PREHOOK_flatten1', @@ -2880,6 +2881,7 @@ $standardsource = '(\.(bat|c|drv|[dem]tx|fea|fdd|ins|mk|sfd)' 'optexcount', '\.(py|sh)$|' . $standardsource, 'ot2cyr', '\.afm|\.etx|' . $standardsource, 'patch', '\.doc', + 'pax', 'build.xml|lib|license|src|' . $standardsource, 'pdfx', 'rvdtx\.sty|' . $standardsource, 'poetrytex', 'Makefile|' . $standardsource, 'pseudo', 'NULL', # keep together @@ -3442,8 +3444,9 @@ $standardttf = '\.ttf|\.TTC'; 'luasseq' => '\.lua$', 'lyluatex' => '\.lua$', 'make4ht' => '(extensions|filters|formats|\.lua)$', - 'mycv' => 'mycv_split_contents\.pl', + 'mycv' => 'mycv_split_contents\.pl$', 'pgfmolbio' => '\.lua$', + 'pax' => 'pax.jar$', 'placeat' => '\.lua$', 'pst-pdf' => '\.bat(.w95)?$', 'puyotikz' => '\.py$', @@ -3536,6 +3539,7 @@ $standardttf = '\.ttf|\.TTC'; 'mkpic' => '^mkpic$', 'musixtex' => '\.lua$', 'optexcount' => 'optexcount$', + 'pax' => 'pdfannotextractor.pl$', 'pdfbook2' => 'pdfbook2$', 'pdfcrop' => '\.pl$', # doscripts() does r* 'pdfjam' => 'pdfjam$', |