pdf-poppler-binaries-linux-fonts 0.1.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/LICENSE +27 -0
  2. package/README.md +72 -0
  3. package/index.js +45 -0
  4. package/lib/fontconfig/fonts.conf +44 -0
  5. package/lib/fonts/LiberationSans-Bold.ttf +0 -0
  6. package/lib/fonts/LiberationSans-BoldItalic.ttf +0 -0
  7. package/lib/fonts/LiberationSans-Italic.ttf +0 -0
  8. package/lib/fonts/LiberationSans-Regular.ttf +0 -0
  9. package/lib/linux/poppler-24.08-xvfb/VERSION +1 -0
  10. package/lib/linux/poppler-24.08-xvfb/bin/Xvfb +0 -0
  11. package/lib/linux/poppler-24.08-xvfb/bin/pdfattach +0 -0
  12. package/lib/linux/poppler-24.08-xvfb/bin/pdfdetach +0 -0
  13. package/lib/linux/poppler-24.08-xvfb/bin/pdffonts +0 -0
  14. package/lib/linux/poppler-24.08-xvfb/bin/pdfimages +0 -0
  15. package/lib/linux/poppler-24.08-xvfb/bin/pdfinfo +0 -0
  16. package/lib/linux/poppler-24.08-xvfb/bin/pdfseparate +0 -0
  17. package/lib/linux/poppler-24.08-xvfb/bin/pdftocairo +0 -0
  18. package/lib/linux/poppler-24.08-xvfb/bin/pdftoppm +0 -0
  19. package/lib/linux/poppler-24.08-xvfb/bin/pdftops +0 -0
  20. package/lib/linux/poppler-24.08-xvfb/bin/pdftotext +0 -0
  21. package/lib/linux/poppler-24.08-xvfb/bin/pdfunite +0 -0
  22. package/lib/linux/poppler-24.08-xvfb/bin/xauth +0 -0
  23. package/lib/linux/poppler-24.08-xvfb/bin/xvfb-run +12 -0
  24. package/lib/linux/poppler-24.08-xvfb/lib/libGL.so.1 +0 -0
  25. package/lib/linux/poppler-24.08-xvfb/lib/libGL.so.1.7.0 +0 -0
  26. package/lib/linux/poppler-24.08-xvfb/lib/libGLX.so.0 +0 -0
  27. package/lib/linux/poppler-24.08-xvfb/lib/libGLX.so.0.0.0 +0 -0
  28. package/lib/linux/poppler-24.08-xvfb/lib/libGLdispatch.so.0 +0 -0
  29. package/lib/linux/poppler-24.08-xvfb/lib/libGLdispatch.so.0.0.0 +0 -0
  30. package/lib/linux/poppler-24.08-xvfb/lib/libICE.so.6 +0 -0
  31. package/lib/linux/poppler-24.08-xvfb/lib/libICE.so.6.3.0 +0 -0
  32. package/lib/linux/poppler-24.08-xvfb/lib/libSM.so.6 +0 -0
  33. package/lib/linux/poppler-24.08-xvfb/lib/libSM.so.6.0.1 +0 -0
  34. package/lib/linux/poppler-24.08-xvfb/lib/libX11.so.6 +0 -0
  35. package/lib/linux/poppler-24.08-xvfb/lib/libX11.so.6.4.0 +0 -0
  36. package/lib/linux/poppler-24.08-xvfb/lib/libXau.so.6 +0 -0
  37. package/lib/linux/poppler-24.08-xvfb/lib/libXau.so.6.0.0 +0 -0
  38. package/lib/linux/poppler-24.08-xvfb/lib/libXdmcp.so.6 +0 -0
  39. package/lib/linux/poppler-24.08-xvfb/lib/libXdmcp.so.6.0.0 +0 -0
  40. package/lib/linux/poppler-24.08-xvfb/lib/libXext.so.6 +0 -0
  41. package/lib/linux/poppler-24.08-xvfb/lib/libXext.so.6.4.0 +0 -0
  42. package/lib/linux/poppler-24.08-xvfb/lib/libXfont2.so.2 +0 -0
  43. package/lib/linux/poppler-24.08-xvfb/lib/libXfont2.so.2.0.0 +0 -0
  44. package/lib/linux/poppler-24.08-xvfb/lib/libXrender.so.1 +0 -0
  45. package/lib/linux/poppler-24.08-xvfb/lib/libXrender.so.1.3.0 +0 -0
  46. package/lib/linux/poppler-24.08-xvfb/lib/libassuan.so.0 +0 -0
  47. package/lib/linux/poppler-24.08-xvfb/lib/libassuan.so.0.8.5 +0 -0
  48. package/lib/linux/poppler-24.08-xvfb/lib/libbrotlicommon.so.1 +0 -0
  49. package/lib/linux/poppler-24.08-xvfb/lib/libbrotlicommon.so.1.0.9 +0 -0
  50. package/lib/linux/poppler-24.08-xvfb/lib/libbrotlidec.so.1 +0 -0
  51. package/lib/linux/poppler-24.08-xvfb/lib/libbrotlidec.so.1.0.9 +0 -0
  52. package/lib/linux/poppler-24.08-xvfb/lib/libbz2.so.1 +0 -0
  53. package/lib/linux/poppler-24.08-xvfb/lib/libbz2.so.1.0.8 +0 -0
  54. package/lib/linux/poppler-24.08-xvfb/lib/libcairo.so.2 +0 -0
  55. package/lib/linux/poppler-24.08-xvfb/lib/libcairo.so.2.11800.0 +0 -0
  56. package/lib/linux/poppler-24.08-xvfb/lib/libcap.so.2 +0 -0
  57. package/lib/linux/poppler-24.08-xvfb/lib/libcap.so.2.73 +0 -0
  58. package/lib/linux/poppler-24.08-xvfb/lib/libexpat.so.1 +0 -0
  59. package/lib/linux/poppler-24.08-xvfb/lib/libexpat.so.1.9.3 +0 -0
  60. package/lib/linux/poppler-24.08-xvfb/lib/libfontconfig.so.1 +0 -0
  61. package/lib/linux/poppler-24.08-xvfb/lib/libfontconfig.so.1.12.0 +0 -0
  62. package/lib/linux/poppler-24.08-xvfb/lib/libfontenc.so.1 +0 -0
  63. package/lib/linux/poppler-24.08-xvfb/lib/libfontenc.so.1.0.0 +0 -0
  64. package/lib/linux/poppler-24.08-xvfb/lib/libfreetype.so.6 +0 -0
  65. package/lib/linux/poppler-24.08-xvfb/lib/libfreetype.so.6.20.1 +0 -0
  66. package/lib/linux/poppler-24.08-xvfb/lib/libgcrypt.so.20 +0 -0
  67. package/lib/linux/poppler-24.08-xvfb/lib/libgcrypt.so.20.4.2 +0 -0
  68. package/lib/linux/poppler-24.08-xvfb/lib/libglapi.so.0 +0 -0
  69. package/lib/linux/poppler-24.08-xvfb/lib/libglapi.so.0.0.0 +0 -0
  70. package/lib/linux/poppler-24.08-xvfb/lib/libglib-2.0.so.0 +0 -0
  71. package/lib/linux/poppler-24.08-xvfb/lib/libglib-2.0.so.0.8200.2 +0 -0
  72. package/lib/linux/poppler-24.08-xvfb/lib/libgpg-error.so.0 +0 -0
  73. package/lib/linux/poppler-24.08-xvfb/lib/libgpg-error.so.0.32.0 +0 -0
  74. package/lib/linux/poppler-24.08-xvfb/lib/libgpgme.so.11 +0 -0
  75. package/lib/linux/poppler-24.08-xvfb/lib/libgpgme.so.11.32.1 +0 -0
  76. package/lib/linux/poppler-24.08-xvfb/lib/libgpgmepp.so.6 +0 -0
  77. package/lib/linux/poppler-24.08-xvfb/lib/libgpgmepp.so.6.20.1 +0 -0
  78. package/lib/linux/poppler-24.08-xvfb/lib/libgraphite2.so.3 +0 -0
  79. package/lib/linux/poppler-24.08-xvfb/lib/libgraphite2.so.3.2.1 +0 -0
  80. package/lib/linux/poppler-24.08-xvfb/lib/libharfbuzz.so.0 +0 -0
  81. package/lib/linux/poppler-24.08-xvfb/lib/libharfbuzz.so.0.60700.0 +0 -0
  82. package/lib/linux/poppler-24.08-xvfb/lib/libjbig.so.2.1 +0 -0
  83. package/lib/linux/poppler-24.08-xvfb/lib/libjpeg.so.62 +0 -0
  84. package/lib/linux/poppler-24.08-xvfb/lib/libjpeg.so.62.3.0 +0 -0
  85. package/lib/linux/poppler-24.08-xvfb/lib/liblcms2.so.2 +0 -0
  86. package/lib/linux/poppler-24.08-xvfb/lib/liblcms2.so.2.0.16 +0 -0
  87. package/lib/linux/poppler-24.08-xvfb/lib/liblz4.so.1 +0 -0
  88. package/lib/linux/poppler-24.08-xvfb/lib/liblz4.so.1.9.4 +0 -0
  89. package/lib/linux/poppler-24.08-xvfb/lib/liblzma.so.5 +0 -0
  90. package/lib/linux/poppler-24.08-xvfb/lib/liblzma.so.5.2.5 +0 -0
  91. package/lib/linux/poppler-24.08-xvfb/lib/libnspr4.so +0 -0
  92. package/lib/linux/poppler-24.08-xvfb/lib/libnss3.so +0 -0
  93. package/lib/linux/poppler-24.08-xvfb/lib/libnss_compat.so.2 +0 -0
  94. package/lib/linux/poppler-24.08-xvfb/lib/libnss_dns.so.2 +0 -0
  95. package/lib/linux/poppler-24.08-xvfb/lib/libnss_files.so.2 +0 -0
  96. package/lib/linux/poppler-24.08-xvfb/lib/libnss_myhostname.so.2 +0 -0
  97. package/lib/linux/poppler-24.08-xvfb/lib/libnss_resolve.so.2 +0 -0
  98. package/lib/linux/poppler-24.08-xvfb/lib/libnss_systemd.so.2 +0 -0
  99. package/lib/linux/poppler-24.08-xvfb/lib/libnssckbi.so +0 -0
  100. package/lib/linux/poppler-24.08-xvfb/lib/libnsssysinit.so +0 -0
  101. package/lib/linux/poppler-24.08-xvfb/lib/libnssutil3.so +0 -0
  102. package/lib/linux/poppler-24.08-xvfb/lib/libopenjp2.so.2.5.2 +0 -0
  103. package/lib/linux/poppler-24.08-xvfb/lib/libopenjp2.so.7 +0 -0
  104. package/lib/linux/poppler-24.08-xvfb/lib/libpcre2-8.so.0 +0 -0
  105. package/lib/linux/poppler-24.08-xvfb/lib/libpcre2-8.so.0.11.0 +0 -0
  106. package/lib/linux/poppler-24.08-xvfb/lib/libpixman-1.so.0 +0 -0
  107. package/lib/linux/poppler-24.08-xvfb/lib/libpixman-1.so.0.43.4 +0 -0
  108. package/lib/linux/poppler-24.08-xvfb/lib/libplc4.so +0 -0
  109. package/lib/linux/poppler-24.08-xvfb/lib/libplds4.so +0 -0
  110. package/lib/linux/poppler-24.08-xvfb/lib/libpng16.so.16 +0 -0
  111. package/lib/linux/poppler-24.08-xvfb/lib/libpng16.so.16.37.0 +0 -0
  112. package/lib/linux/poppler-24.08-xvfb/lib/libpoppler.so.140 +0 -0
  113. package/lib/linux/poppler-24.08-xvfb/lib/libpoppler.so.140.0.0 +0 -0
  114. package/lib/linux/poppler-24.08-xvfb/lib/libsmime3.so +0 -0
  115. package/lib/linux/poppler-24.08-xvfb/lib/libssl3.so +0 -0
  116. package/lib/linux/poppler-24.08-xvfb/lib/libsystemd.so.0 +0 -0
  117. package/lib/linux/poppler-24.08-xvfb/lib/libsystemd.so.0.35.0 +0 -0
  118. package/lib/linux/poppler-24.08-xvfb/lib/libtiff.so.5 +0 -0
  119. package/lib/linux/poppler-24.08-xvfb/lib/libtiff.so.5.8.0 +0 -0
  120. package/lib/linux/poppler-24.08-xvfb/lib/libuuid.so.1 +0 -0
  121. package/lib/linux/poppler-24.08-xvfb/lib/libuuid.so.1.3.0 +0 -0
  122. package/lib/linux/poppler-24.08-xvfb/lib/libwebp.so.7 +0 -0
  123. package/lib/linux/poppler-24.08-xvfb/lib/libwebp.so.7.1.5 +0 -0
  124. package/lib/linux/poppler-24.08-xvfb/lib/libxcb-render.so.0 +0 -0
  125. package/lib/linux/poppler-24.08-xvfb/lib/libxcb-render.so.0.0.0 +0 -0
  126. package/lib/linux/poppler-24.08-xvfb/lib/libxcb-shm.so.0 +0 -0
  127. package/lib/linux/poppler-24.08-xvfb/lib/libxcb-shm.so.0.0.0 +0 -0
  128. package/lib/linux/poppler-24.08-xvfb/lib/libxcb.so.1 +0 -0
  129. package/lib/linux/poppler-24.08-xvfb/lib/libxcb.so.1.1.0 +0 -0
  130. package/lib/linux/poppler-24.08-xvfb/lib/libxml2.so.2 +0 -0
  131. package/lib/linux/poppler-24.08-xvfb/lib/libxml2.so.2.10.4 +0 -0
  132. package/lib/linux/poppler-24.08-xvfb/lib/libz.so.1 +0 -0
  133. package/lib/linux/poppler-24.08-xvfb/lib/libz.so.1.2.11 +0 -0
  134. package/lib/linux/poppler-24.08-xvfb/lib/libzstd.so.1 +0 -0
  135. package/lib/linux/poppler-24.08-xvfb/lib/libzstd.so.1.5.5 +0 -0
  136. package/package.json +35 -0
package/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2024 Beat Bachi
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+
17
+ ---
18
+
19
+ This package includes third-party software with the following licenses:
20
+
21
+ POPPLER
22
+ License: GPL-2.0 or GPL-3.0
23
+ https://poppler.freedesktop.org/
24
+
25
+ LIBERATION SANS FONTS
26
+ License: SIL Open Font License 1.1
27
+ https://github.com/liberationfonts/liberation-fonts
package/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # pdf-poppler-binaries-linux-fonts
2
+
3
+ Linux binaries for [pdf-poppler-core](https://www.npmjs.com/package/pdf-poppler-core) with bundled fonts. Designed for environments without system fonts like AWS Lambda, Docker containers, and serverless platforms.
4
+
5
+ ## When to Use This Package
6
+
7
+ **Use this package if you need to fill PDF forms** (with libraries like `pdf-lib`) and convert them to images in serverless environments. Without bundled fonts, form field values will not render in the output images.
8
+
9
+ Standard Linux binary packages (`pdf-poppler-binaries-linux`, `pdf-poppler-binaries-aws-2`) do not include fonts, which causes filled form text to be invisible when converting to PNG/JPEG.
10
+
11
+ ## Features
12
+
13
+ - Poppler 24.08 utilities (pdftocairo, pdfinfo, pdftotext, etc.)
14
+ - Bundled Liberation Sans fonts (Helvetica-compatible)
15
+ - Fontconfig configuration with automatic font substitution
16
+ - All required shared libraries included
17
+ - Xvfb support for headless rendering
18
+ - **PDF form field text renders correctly**
19
+
20
+ ## Installation
21
+
22
+ ```bash
23
+ npm install pdf-poppler-binaries-linux-fonts
24
+ ```
25
+
26
+ ## Usage
27
+
28
+ This package is automatically detected by `pdf-poppler-core` on Linux:
29
+
30
+ ```javascript
31
+ const { PdfPoppler } = require('pdf-poppler-core');
32
+
33
+ // Auto-detects and uses this package on Linux
34
+ const poppler = new PdfPoppler();
35
+ await poppler.convert('input.pdf', { format: 'png' });
36
+ ```
37
+
38
+ For AWS Lambda:
39
+
40
+ ```javascript
41
+ const poppler = PdfPoppler.forLambda();
42
+ await poppler.convert('input.pdf', { format: 'png' });
43
+ ```
44
+
45
+ ## Font Substitution
46
+
47
+ The package includes Liberation Sans fonts and configures fontconfig to automatically substitute:
48
+
49
+ - Helvetica → Liberation Sans
50
+ - Helvetica Neue → Liberation Sans
51
+ - Arial → Liberation Sans
52
+ - sans-serif → Liberation Sans
53
+
54
+ This ensures PDF form fields and text render correctly even without system fonts.
55
+
56
+ ## Package Contents
57
+
58
+ - `lib/linux/poppler-24.08-xvfb/bin/` - Poppler binaries and Xvfb
59
+ - `lib/linux/poppler-24.08-xvfb/lib/` - Shared libraries
60
+ - `lib/fonts/` - Liberation Sans TTF fonts
61
+ - `lib/fontconfig/fonts.conf` - Fontconfig configuration
62
+
63
+ ## Requirements
64
+
65
+ - Linux x86_64 (built on Amazon Linux 2023)
66
+ - Node.js 18+
67
+
68
+ ## License
69
+
70
+ ISC
71
+
72
+ Poppler is licensed under GPL. Liberation Sans fonts are licensed under SIL Open Font License.
package/index.js ADDED
@@ -0,0 +1,45 @@
1
+ const path = require('path');
2
+
3
+ /**
4
+ * Returns the base path where Linux poppler binaries are located
5
+ * @returns {string} The base path to the Linux binaries directory
6
+ */
7
+ function getBinaryPath() {
8
+ return path.join(__dirname, 'lib', 'linux');
9
+ }
10
+
11
+ /**
12
+ * Returns the path to the bundled fontconfig directory
13
+ * @returns {string} The path to fontconfig configuration
14
+ */
15
+ function getFontconfigPath() {
16
+ return path.join(__dirname, 'lib', 'fontconfig');
17
+ }
18
+
19
+ /**
20
+ * Returns the path to the bundled fonts directory
21
+ * @returns {string} The path to fonts directory
22
+ */
23
+ function getFontsPath() {
24
+ return path.join(__dirname, 'lib', 'fonts');
25
+ }
26
+
27
+ /**
28
+ * Returns environment variables needed for fontconfig to work with bundled fonts
29
+ * @returns {object} Environment variables to merge with process.env
30
+ */
31
+ function getFontconfigEnv() {
32
+ const fontconfigPath = getFontconfigPath();
33
+ return {
34
+ FONTCONFIG_PATH: fontconfigPath,
35
+ FONTCONFIG_FILE: path.join(fontconfigPath, 'fonts.conf'),
36
+ FC_CACHEDIR: '/tmp/fontconfig-cache'
37
+ };
38
+ }
39
+
40
+ module.exports = {
41
+ getBinaryPath,
42
+ getFontconfigPath,
43
+ getFontsPath,
44
+ getFontconfigEnv
45
+ };
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
3
+ <fontconfig>
4
+ <!-- Bundled fonts directory -->
5
+ <dir>/var/task/node_modules/pdf-poppler-binaries-linux-fonts/lib/fonts</dir>
6
+ <dir>/opt/nodejs/node_modules/pdf-poppler-binaries-linux-fonts/lib/fonts</dir>
7
+
8
+ <!-- Fallback to common locations -->
9
+ <dir prefix="cwd">lib/fonts</dir>
10
+ <dir>/usr/share/fonts</dir>
11
+ <dir>/usr/local/share/fonts</dir>
12
+
13
+ <!-- Cache directory -->
14
+ <cachedir>/tmp/fontconfig-cache</cachedir>
15
+
16
+ <!-- Default rendering settings -->
17
+ <match target="font">
18
+ <edit name="antialias" mode="assign"><bool>true</bool></edit>
19
+ <edit name="hinting" mode="assign"><bool>true</bool></edit>
20
+ <edit name="hintstyle" mode="assign"><const>hintslight</const></edit>
21
+ </match>
22
+
23
+ <!-- Map Helvetica to Liberation Sans -->
24
+ <alias>
25
+ <family>Helvetica</family>
26
+ <prefer><family>Liberation Sans</family></prefer>
27
+ </alias>
28
+ <alias>
29
+ <family>Helvetica Neue</family>
30
+ <prefer><family>Liberation Sans</family></prefer>
31
+ </alias>
32
+ <alias>
33
+ <family>Arial</family>
34
+ <prefer><family>Liberation Sans</family></prefer>
35
+ </alias>
36
+ <alias>
37
+ <family>sans-serif</family>
38
+ <prefer><family>Liberation Sans</family></prefer>
39
+ </alias>
40
+ <alias>
41
+ <family>sans</family>
42
+ <prefer><family>Liberation Sans</family></prefer>
43
+ </alias>
44
+ </fontconfig>
@@ -0,0 +1 @@
1
+ 24.08.0-fonts
@@ -0,0 +1,12 @@
1
+ #!/bin/sh
2
+ # Get the directory where this script is located
3
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
4
+ DISPLAY=:99
5
+ export DISPLAY
6
+ "$SCRIPT_DIR/Xvfb" $DISPLAY -screen 0 1024x768x24 &
7
+ XVFB_PID=$!
8
+ sleep 0.1
9
+ "$@"
10
+ EXIT_CODE=$?
11
+ kill $XVFB_PID 2>/dev/null
12
+ exit $EXIT_CODE
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "pdf-poppler-binaries-linux-fonts",
3
+ "version": "0.1.0-beta",
4
+ "description": "Linux binaries for pdf-poppler with bundled fonts. Includes Poppler utilities, fontconfig, and Liberation Sans fonts for environments without system fonts (Lambda, containers).",
5
+ "main": "index.js",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Boot750/pdf-poppler-core.git",
9
+ "directory": "packages/pdf-poppler-binaries-linux-fonts"
10
+ },
11
+ "homepage": "https://github.com/Boot750/pdf-poppler-core#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/Boot750/pdf-poppler-core/issues"
14
+ },
15
+ "keywords": [
16
+ "pdf",
17
+ "poppler",
18
+ "linux",
19
+ "binaries",
20
+ "fonts",
21
+ "fontconfig",
22
+ "pdf2image",
23
+ "lambda",
24
+ "aws",
25
+ "serverless"
26
+ ],
27
+ "author": "Beat Bachi",
28
+ "license": "ISC",
29
+ "files": [
30
+ "index.js",
31
+ "lib",
32
+ "README.md",
33
+ "LICENSE"
34
+ ]
35
+ }