office/extractpdfmark: Added (extract page mode etc from PDF).

Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
This commit is contained in:
Andy Goth 2017-08-31 11:08:31 +01:00 committed by David Spencer
parent c91d784733
commit b6a01d77c5
4 changed files with 156 additions and 0 deletions

View file

@ -0,0 +1,29 @@
This program is able to extract page mode and named destinations as
PDF­marks from PDF. By using this you can get small PDF files that have
preserved them.
When you create a PDF document using a TeX system, you may include many
small PDF files in the main PDF file. It is common for each of the
small PDF files to use the same fonts.
If the small PDF files contain embedded font subsets, the TeX system
includes them as-is in the main PDF. As a result, several subsets of
the same font are embedded in the main PDF. It is not possible to
remove the duplicates since they are different subsets. This vastly
increases the size of the main PDF file.
On the other hand, if the small PDF files contain embedded full font
sets, the TeX system also includes all of them in the main PDF. This
time, the main PDF contains duplicates of the same full sets of fonts.
Therefore, Ghostscript can remove the duplicates. This may considerably
reduce the main PDF file's size.
Finally, if the small PDF files contain some fonts that are not
embedded, the TeX system outputs the main PDF file with some fonts
missing. In this case, Ghostscript can embed the necessary fonts,
significantly reducing the required disk space.
Either way, when Ghostscript reads the main PDF produced by the TeX
system and outputs the final PDF it does not preserve PDF page mode,
named destinations, etc. As a result, when you open the final PDF, it
is not displayed correctly. Also, remote PDF links will not work.

View file

@ -0,0 +1,98 @@
#!/bin/sh
# Slackware build script for extractpdfmark
# Copyright 2017 Andy Goth <andrew.m.goth@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=extractpdfmark
VERSION=${VERSION:-1.0.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
make
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="extractpdfmark"
VERSION="1.0.2"
HOMEPAGE="https://www.ctan.org/tex-archive/support/extractpdfmark"
DOWNLOAD="https://github.com/trueroad/extractpdfmark/releases/download/v1.0.2/extractpdfmark-1.0.2.tar.gz"
MD5SUM="0032e431cb7796f486a2a6de2ae5a74f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Andy Goth"
EMAIL="andrew.m.goth@gmail.com"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
extractpdfmark: extractpdfmark (extract page mode and named destinations from PDF)
extractpdfmark:
extractpdfmark: extractpdfmark extracts page mode, named destinations, etc. from PDF
extractpdfmark: files produced by TeX. This protects these PDF marks from Ghostscript
extractpdfmark: in the process of using Ghostscript to reduce PDF file size, which may
extractpdfmark: otherwise be very large when the PDF is comprised of many small PDFs,
extractpdfmark: each embedding the same full font sets.
extractpdfmark:
extractpdfmark:
extractpdfmark:
extractpdfmark: