Comments (2)
Probably this is just not feasible. PNG simply does not support semi-transparent bitmaps. Most other programs that do export to PDF don't support transparency very well, either. Including Adobe Products.
We could however improve the situation using some fancy preprocessing: If analysis of the pixels of the images determines that there are large fully transparent areas, the image could be subdivided into smaller images that are then passed to jspdf or even be discarded if their average opacity is below a certain threshold. Also I believe if parts of the image all have the same transparency, it should be possible to emit one image into the pdf with a fixed transparency for the whole image.
An adaptive image subdivision algorithm could yield acceptable results for many cases where now we get a totally different result. With a given quality setting, this could result into hundreds of single pixel elements in the extreme case, but all with a perfect transparency.
Also it would be possible to analyse the SVG and composite multiple semi-transparent images into single images before passing them to jspdf.
from svg2pdf.js.
As I just found out, the addImage plugin actually supports transparency for png images. However, there is a bug that raised an exception when converting from an UInt8Array back to String. I'm gonna fix that in jsPDF. Additionally, we no longer need to convert to jpg first.
from svg2pdf.js.
Related Issues (20)
- Force stroke='none' if 'stroke-width' === 0 HOT 3
- Support for XML HOT 1
- SVG is upscaled in the pdf-file HOT 3
- When font-size declared in rem, text is missing in the exported file. HOT 4
- Artifacts at letter s of font Aleo after conversion - but font Aleo itself has no such issue in jspdf HOT 5
- Latest master doesn't build HOT 1
- Excess clipping of nested SVG HOT 8
- Marker clipping HOT 2
- Error: Invalid argument passed to jsPDF.scale Error HOT 4
- Black background added to paths HOT 8
- Chinese is not supported HOT 2
- The exported PDF is not rendering custom fonts on some of the PDF text objects. HOT 8
- How to concatenate multiple SVG files? HOT 2
- Setting width and height as floats throws t. HOT 2
- How to ignore invalid dataurl HOT 6
- Accept spaces in data urls in image urls
- adding support for the CMYK color space HOT 5
- greek letters in text HOT 1
- tspan dx makes incorrect offset HOT 1
- Incorrect Gradient rendering in svg2pdf HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from svg2pdf.js.