Invalid ColorSpace error in PDF files in Acrobat or Reader
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- angular, javascript
- Área
- web-dev
Línea de trabajo
Comienza reproduciendo la muestra proporcionada de pdfkit 0.16.0 con el subconjunto PDF/A-3a y la configuración de webpack indicada, y luego abre el archivo generado en Adobe Reader. Compáralo con el archivo producido al eliminar el subconjunto; se considera terminado cuando el archivo PDF/A-3a generado se abre sin el error Invalid ColorSpace indicado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug Report
Invalid ColorSpace error in PDF files in Acrobat or Reader
Description of the problem
There is an error displayed in Adobe Reader 'Invalid ColorSpace error in PDF files in Acrobat or Reader' while opening the PDF/A-3a file generated in PDFKit. When I remove the subset of PDF/A-3a Adobe doesn't throw any errors and opens the file correctly.
I'm working in latest angular version and latest pdfkit.
Code sample
import blobStream from 'blob-stream';
import pdfkit from 'pdfkit';
async createPdf(htmlDoct: string) {
const doc = new pdfkit({
pdfVersion: '1.7',
subset: 'PDF/A-3a',
tagged: true,
displayTitle: true,
size: 'A4',
bufferPages: true,
margin: 30,
});
// draw some text
doc.fontSize(25).text('Here is some vector graphics...', 100, 80);
// some vector graphics
doc
.save()
.moveTo(100, 150)
.lineTo(100, 250)
.lineTo(200, 250)
.fill('#FF3300');
doc.circle(280, 200, 50).fill('#6600FF');
// an SVG path
doc
.scale(0.6)
.translate(470, 130)
.path('M 250,75 L 323,301 131,161 369,161 177,301 z')
.fill('red', 'even-odd')
.restore();
doc.save();
// a gradient fill
var gradient = doc
.linearGradient(100, 300, 200, 300)
.stop(0, 'green')
.stop(0.5, 'red')
.stop(1, 'green');
doc.rect(100, 300, 100, 100).fill(gradient);
let stream = doc.pipe(blobStream());
// stroke & fill uncolored tiling pattern
var stripe45d = doc.pattern(
[1, 1, 4, 4],
3,
3,
'1 w 0 1 m 4 5 l s 2 0 m 5 3 l s'
);
doc.circle(280, 350, 50).fill([stripe45d, 'blue']);
doc
.rect(380, 300, 100, 100)
.fillColor('lime')
.strokeColor([stripe45d, 'orange'])
.lineWidth(5)
.fillAndStroke();
doc.restore();
// and some justified text wrapped into columns
doc
.text('And here is some wrapped text...', 100, 450)
.font('Times-Roman', 13)
.moveDown()
.text('lorem', {
width: 412,
align: 'justify',
indent: 30,
columns: 2,
height: 300,
ellipsis: true
});
doc.end();
stream.on('finish', () => {
window.open(stream.toBlobURL('application/pdf'));
});
}
my webpack config export file :
module.exports = {
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser',
}),
new webpack.DefinePlugin({
output: {
path: path.resolve(__dirname, '/dist/apps/' + project),
},
}),
],
resolve: {
symlinks: false,
alias: {
// maps fs to a virtual one allowing to register file content dynamically
fs: __dirname + '/virtual-fs.js'
},
fallback: {
// crypto module is not necessary at browser
crypto: false,
// fallbacks for native node libraries
buffer: require.resolve('buffer/'),
stream: require.resolve('readable-stream'),
zlib: require.resolve('browserify-zlib'),
util: require.resolve('util/'),
assert: require.resolve('assert/'),
fs: require.resolve('fs'),
},
},
module: {
rules: [
{ test: /\.afm$/, type: 'asset/source' },
{ test: /\.icc$/, type: 'asset/source' },
{ test: /\.png$/, type: 'asset/source' },
{
test: /src[/\\]static-assets/,
type: 'asset/inline',
generator: {
dataUrl: (content) => {
return content.toString('base64');
},
},
},
// load binary files inside lazy-assets folder as an URL
{
test: /src[/\\]lazy-assets/,
type: 'asset/resource',
},
],
},
};
Your environment
- pdfkit version: 0.16.0
- Node version:
- Browser version (if applicable):
- Operating System:
- Lenguaje dominante
- JavaScript
- Estrellas
- 10.7k
- Forks
- 1.2k
- Merge medio
- 21 h 41 min
- PR fusionados (30 d)
- 27
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de foliojs/pdfkit
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
foliojs/pdfkit#1804 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
PDFKit crashes when providing fonts as Buffer in tablePosiblemente ocupada @ykw9263 la tomó hace 132 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
foliojs/pdfkit#1743 · 13 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
foliojs/pdfkit#1635 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Get detailed font metricsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
foliojs/pdfkit#1512 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Upgrade codemirrorAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
Todos los issues de foliojs/pdfkit
Issues similares
-
clientV2: Application Info header separators show as missing-character boxes without a CJK fontAbiertobug new-client
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
NUWCDIVNPT/stig-manager#2285 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Fei2411/DeepSeek-Bot#922 · 1 reacción ·
-
server errored
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
OpenTermsArchive/contrib-declarations#4273 ·
Los mantenedores suelen responder en 1 día
-
needs-area-label
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 2 días
-
serienstream.toAbiertoN: AdGuard for Windows P2: High T: Annoyance
Dificultad 2/5 1-3 horas Aptitud para principiantes 61/100
AdguardTeam/AdguardFilters#246310 ·
Los mantenedores suelen responder en 1 día