Add a printer output option, providing a menu item to print

to file or hardcopy.

Note: xpdf4 only supports printing to CUPS.

PR:		222283
This commit is contained in:
Cy Schubert 2017-09-18 19:45:46 +00:00
parent 646336fb3f
commit 408fb4e129
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=450077
4 changed files with 66 additions and 5 deletions

View file

@ -2,6 +2,7 @@
PORTNAME= xpdf
PORTVERSION= 4.02
PORTREVISION= 1
CATEGORIES= graphics print
MASTER_SITES= http://www.xpdfreader.com/dl/
.if !defined(MASTERDIR)
@ -26,7 +27,7 @@ USES= cmake:outsource localbase
CMAKE_ARGS+= -DOPI_SUPPORT:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Qt4:BOOL=ON \
-DUSE_LCMS:BOOL=OFF -DSYSTEM_XPDFRC=${PREFIX}/etc/xpdfrc
OPTIONS_DEFINE= TYPE1 LIBPAPER GUI
OPTIONS_DEFINE= TYPE1 LIBPAPER GUI PRINT
OPTIONS_DEFAULT= TYPE1 GUI
OPTIONS_SUB= yes
@ -43,6 +44,12 @@ GUI_DESC= QT5 interface
GUI_CMAKE_ARGS+= -DNO_TEXT_SELECT:BOOL=OFF
GUI_USE= QT5=buildtools_build,qmake_build,concurrent,core,gui,widgets,printsupport
PRINT_CMAKE_ON= -DXPDFWIDGET_PRINTING:BOOL=ON -DCUPS:BOOL=ON
PRINT_CMAKE_OFF= -DXPDFWIDGET_PRINTING:BOOL=OFF -DCUPS:BOOL=OFF
PRINT_DESC= Print support (CUPS dependency)
PRINT_LDFLAGS= -L${LOCALBASE}/lib
PRINT_LIB_DEPENDS= libcups.so:print/cups
post-install:
@cd ${STAGEDIR}${PREFIX}; \
${LN} -sf ../libexec/xpdf/xpdf bin/xpdf

View file

@ -0,0 +1,12 @@
--- aconf.h.in.orig 2017-08-08 16:22:50.000000000 -0700
+++ aconf.h.in 2017-09-17 20:40:48.183421000 -0700
@@ -110,4 +110,9 @@
*/
#cmakedefine01 BUILDING_XPDFREADER
+/*
+ * Defined when print option selected
+ */
+#cmakedefine01 XPDFWIDGET_PRINTING
+
#endif

View file

@ -1,6 +1,6 @@
--- cmake-config.txt.orig 2017-09-02 20:30:45 UTC
+++ cmake-config.txt
@@ -79,6 +79,7 @@ option(USE_EXCEPTIONS "use C++ exception
--- cmake-config.txt.orig 2017-08-08 16:22:50.000000000 -0700
+++ cmake-config.txt 2017-09-17 21:03:21.838497000 -0700
@@ -79,6 +79,7 @@
option(USE_FIXEDPOINT "use fixed point (instead of floating point) arithmetic" OFF)
option(SPLASH_CMYK "include support for CMYK rasterization" OFF)
option(SPLASH_DEVICEN "include support for DeviceN rasterization" OFF)
@ -8,7 +8,29 @@
if (SPLASH_DEVICEN)
set(SPLASH_CMYK ON)
endif ()
@@ -278,10 +279,34 @@ else()
@@ -235,9 +236,7 @@
if (XPDFWIDGET_PRINTING)
set(QT_INCLUDES "${Qt5Widgets_INCLUDE_DIRS} ${Qt5PrintSupport_INCLUDE_DIRS}")
set(QT_DEFINITIONS "${Qt5Widgets_DEFINITIONS} ${Qt5PrintSupport_DEFINITIONS}")
- if (APPLE)
- set(QT_LIBRARIES Qt5::Widgets Qt5::PrintSupport "-framework ApplicationServices")
- elseif (UNIX)
+ if (CUPS)
set(QT_LIBRARIES Qt5::Widgets Qt5::PrintSupport cups)
else ()
set(QT_LIBRARIES Qt5::Widgets Qt5::PrintSupport)
@@ -248,9 +247,7 @@
set(QT_LIBRARIES Qt5::Widgets)
endif ()
if (XPDFWIDGET_PRINTING)
- if (APPLE)
- set(EXTRA_QT_LIBRARIES "-framework ApplicationServices")
- elseif (UNIX)
+ if (CUPS)
set(EXTRA_QT_LIBRARIES cups)
else ()
set(EXTRA_QT_LIBRARIES "")
@@ -278,10 +275,34 @@
endif()
#--- look for libpaper

View file

@ -0,0 +1,20 @@
--- xpdf-qt/XpdfWidgetPrint.cc.orig 2017-08-08 16:22:50.000000000 -0700
+++ xpdf-qt/XpdfWidgetPrint.cc 2017-09-17 21:42:14.242967000 -0700
@@ -21,7 +21,7 @@
#elif defined(__APPLE__)
# include <CoreFoundation/CoreFoundation.h>
# include <ApplicationServices/ApplicationServices.h>
-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__FreeBSD_cc_version)
# include "PSOutputDev.h"
# include <cups/cups.h>
#endif
@@ -315,7 +315,7 @@
// Linux
//------------------------------------------------------------------------
-#elif defined(__linux__)
+#elif defined(__linux__) || defined(__FreeBSD_cc_version)
static void fileOut(void *stream, const char *data, int len) {
fwrite(data, 1, len, (FILE *)stream);