PDF quality

*disclaimer- i’m probably pretty out-of-line speaking in the thread because i don’t even have pdf export options on my version of rhino but—

the two example files posted by @ATH are a little misleading… he shows the PDF which has an embedded raster image at around 1000px wide… then shows a jpg version in which the same image is nearing 3000px wide… when viewed at the same size on screen or printed to the same size, the raster which is 3x the size is usually going to appear much cleaner…

there’s a similar trick in sketchup you have to do (and i assume most other apps of this nature would benefit from the same trick) when exporting raster images in that you export a 3x target size then scale them down afterwards in an image editor… for instance- this is a straight 800 px wide export from sketchup (it’s a rhino model but…)


here’s the same image except it was exported at 2400px wide then scaled down to 800px in post:

the latter version appearing more clean…
(for the examples, no AA was applied… the straight 800px export would appear a little cleaner with anti-aliasing but not by much)

the same file except what arail is talking about… a pdf exported from layout.app (a sister program of sketchup) using hybrid rendering… the lines are vector while the shading/textures are raster. (you won’t notice it upon first opening because it’s not the same size as the above example… if you start zooming in on the pdf though, you should be able to see what’s going on and tell that the lines aren’t raster)

exampleC.pdf (906.0 KB)

Yes, that is the move: go big on the output and then shrink down for final presentation. It would be fantastic to have this option somehow within PDF creation so that one could keep vector linework and still have smooth rasters…

Example C from you SU output is enviable. There is no chance I will ever go back to SU but I seriously hope rhino can incorporate this one day, the community would rejoice.

1 Like

well, layout.app is a separate application than sketchup itself (it’s included with the purchase of a pro license)… pdfs out of sketchup itself are pretty bad and printing to scale is an exercise in futility… also, no actual curves in sketchup and the pdfs will often have gaps in between the individual segments plus you can’t do the hybrid vector/raster thing from within sketchup…

it’s somewhat clumsy to link .skp to the .layout file though it is possible to change a sketchup model then have it update in layout…
not to mention that layout with vector or hybrid rendering is horribly slow…

so yeah, while the results can be good out of layout, it’s not as if it’s painless to get to that point… i like the idea of having the layout functions within the app itself (such as rhino). these functions aren’t hooked up on mac rhino yet so i can’t really say if it’s better or easier than the SU/Layout setup but i imagine it would be… @arail has used both so he’d know better about the process.

i do think the underlaying code in rhino is a lot faster than that of sketchup so if it does gain the ability to output vector linework over raster shading then i imagine it’s going to be superior to the sketchup implementation.

Aha.
That explains why PRINTING from Illustrator through PDF995 produces clean curves.

I assume this converting to lines is done for all printing jobs in Rhino.
No wonder then that the output is lines.

Question:
To get PDFs with curves from Rhino, there must be something different then the current print mechanism.
Is this what ‘Save as PDF’ is intended for?

In that case, I’ll just shut up and read what others say in this thread…

Thanks for sharing the insights Steve

Would improvement mean a rewrite of the curve conversion?

In addition I want to note that PDF can (and is) also used for production purposes, so a clean as possible output is paramount (IMO) That was my reason to pursue an automated method for clean PDF output as posted here:

-Willem

There’s no doubt that the traditional arrangement of the layout function being essentially a ‘window’ on to the model space as it is in Rhino and AutoCAD is better than layout being a separate application like it is with SU / LO. But I have gotten a sense of why some people over there are excited by LO - it functions for them like a mini Illustrator in 3D space (I’m aware I’m stretching an analogy by comparing LO to Illustrator). Nonetheless, when I have to make the trip from Rhino to LO it’s tedious and cumbersome and I look forward to a time when I won’t have to.

I think this is important in more ways than the narrow question of PDF quality. I’ve found that my clients are jaded by renderings - i.e. the full blown, photorealistic images generated out of V-Ray and Maxwell and, I assume, Brasil. They’ve seen it all and aren’t impressed. I’m starting to look at more graphically complex presentations that combine technical data with images and text and so on. I think that’s the way forward now and I think Rhino, if it can upgrade it’s PDF and vector capabilities is ideally situated to offer that kind of output. Imagine a kind of Illustrator overlay in layout that would allow for a more advanced manipulation of images without having to go outside of the Rhino environment …

Save as PDF is there primarily because there were several users that didn’t realize they could use the print command to generate a PDF. Save As PDF pretty much just runs the print command with a PDF printer set as the default.

There is no current mechanism for getting curves directly into PDFs from Rhino (without going through some intermediate step like saving to AI.) This is new code that we will have to write.

Yep. We would need to fit NURBS curves to what is available in the PDF file format; that would be two dimensional arcs, polylines (what we currently do), and cubic beziers.

I don’t see us getting much more accurate on our PDF output by changing our process. If we start fitting 2D simple beziers to our curves for output there will be a fitting algorithm involved and that fitting will need to be performed to some level tolerance. Of course lines are also a fit approximation of the curve, and those line segments are within the distance of a dot on the PDF (typically somewhere around 600DPI.)

Hi Steve,
Thanks for your reply

Technically you are right, the output will allways - just like it is now- be withing a set tolerance. However, quality of curves cannot be measured just by the deviation amount. I was referring to how clean the curves could be. The current setup does not produce smooth or clean curves by design, although the polylines are within tolerance, they can be quite jagged in appearance. If a conversion to beziers is implemented the appearance will no doubt improve dramatically overall, (as will the filesize reduction I suspect).
In any case, I expect the output to be with more fidelity as for instance small circles and acrs will be converted without much loss of accuracy.

One great advantage of a vector format is the lack of resolution restrictions; one can zoom in and out without a “loss of focus” (for lack better words). The current polyline conversion sort of introduces a pixel type resolution within a vector format, making the output loose that scale-ability advantage of vector files.

Thinking about that, it might be good to differentiate between PDF purposes. Where the user can export to PDF and have an option to choose a fidelity/tolerance. That way we can produce a letter format page of a building site to be easily printed on paper for reference, yet with high accuracy for onscreen review, zooming in to the smallest details.

What would be needed is an option to let the user set the absolute tolerance with which the fitting algorithm operates.
Minimal tolerance would be the absolute file tolerance, producing a PDF with curves that are most accurate to the ones in the Rhino document, regardless of the PDF page size.
Maximum tolerance would be based on the desired DPI for print with that page size.

I do not know how this would be best implemented with the correct wording and GUI, to make it as unambiguous as possible.
Maybe a few presets or slider for various DPI’s and an overriding checkbox to use file tolerance?

Anyway so far my2c and brainstorm on this
Thanks,
-Willem

1 Like

+1 on wishing we could get much better quality lines printed in PDF format.
Clients don’t understand or care why it’s a problem to do it from Rhino. To them it’s a sign that you cannot do something that ‘ought’ to be (in their minds) simple.

4 Likes

To dust off a very old thread: Has any progress been made with getting smooth curves out of Rhino when sending them to PDF?

By “sending to PDF” do you mean Printing with a PDF printer?
If so then you are affected by the printersettings and need to set the PDF printer to high quality.

It’s the quality of the Rhino output of curves that I’m concerned about (i.e. not curved curves, but all straight lines - thousands of them), as discussed earlier in the thread. I’m creating a lot of ‘print ready’ artwork in Rhino atm and it’s a real pain having to export as .ai as well as printing to PDF; the former to provide the vector artwork, the latter to give a visual guide to the Printer as the fills in the .ai files are often well out of whack.

If I buy/install a full version of Adobe Acrobat, will the printer driver it incorporates allow me to print clean curves direct to PDF?

Nope, as I believe mentioned above it’s the fact it goes through Windows’ printing stuff, including with Acrobat, that causes this.

So - as things currently stand, there is no way to get clean bezier curve artwork directly from Rhino to PDF :cry:

Rhino’s PDF output goes through a PDF printer driver and is really optimized for directly printing to paper. We do hope to eventually produce cleaner output since we know that people aren’t necessarily printing their PDFs to paper and the pdf may be edited more in applications like AI or zoomed in very close when viewed.

Unfortunately this is a big project, so you won’t see any improvements in this area for V5

What about V6 then?

Possibly, but there are currently higher priority items that need to be worked on first

Export as AI can give you better results, but it doesn’t support everything so you might have to do some post work in illustrator.

Second that. Only way I know to get vector PDFs that will scale sharp on screen and/or and print super sharp at any size.

Worth the extra effort if flexibility and quality of output is important.