Closed TorsteinHonsi closed 7 years ago
True - the reason is that the new code only runs when there is no "pathSegList" JS property, which still exists for Firefox and Safari, but is gone with Chrome. We should probably just move the
SvgPath && (d = SvgPath(d).unshort().unarc().abs().toString());
part higher up in front of the return statement in getPathSegList() since the calling code expects all of the svg path oddities to have already been removed when the call returns.
Thanks! I would like to try this and send a PR. In the mean time, can you tell me, or document in readme.md how the workflow is at the moment? The test files refer to svg2pdf.min.js
, which is concatenated from source files and minified using Uglify and apparently there is a plugin to preserve the license headers. What commands do I run to build it?
Actually building should be simple: there are scripts defined in package.json so you can do
npm run build
and it should build the minified sources along with source maps so that you can conveniently run and debug the tests.
Ah, thanks!
Moving the path definition line up in front of the return statement didn't cut it. However, completely removing the return statement works for both Firefox and Safari. Is that a viable solution, or are you aware of any horrible side effects?
You need of course set the "d" attribute anew after cleaning up the string. Just moving the line alone will not work. This however modifies the SVG and as such is not a nice solution, anyway.
I guess simply always using the Chrome code (removing the if
) should work well. Otherwise we would have the same "horrible side-effects" in Chrome. I am not aware of any such side-effects, other than possibly a loss in performance.
Probably the cleanest solution would be to mimic the arc segment in the segment list, and to the transform to a curve here instead. But your proposed fix works, hence the PR. Would appreciate a pull and a version bump.
Sorry, but as I said before, I don't like the way we are now modifying the document. I would rather just get rid of the FF/Safari branch and always go with the Chrome branch.
After fixing #10, arcs display fine in Chrome, but Safari and Firefox simply leave them out. It can be seen with test no 21 in the repo: