PDF quality

Illustrator is NOT printing to PDF. It is SAVING to PDF.
So that might be the big difference.

PDF can be used as a good alternative to the AI format in many sitautions, and has the option “preserve Illustrator editing capabilities” (might be remembered a bit wrong)

Even if we PRINT from Illustrator?

What is missing from Rhino plotting function is the ability to plot a view, particularly perspective views, and retain the vector output, and the plot is not reliant on a display mode.
You are 100 per-cent correct that good vector style pdf’s can be generated from any view. I use Adobe Acrobat Pro, and when I plot from Rhino in wire-frame, everything is retained as per the screen view when the pdf is opened with Rhino, including the fact that text is editable text.(not so in perspective)
It is when a display mode is used to obtain the desired output that it all turns to bitmap.
Technical works, generates vectors, but the output ends up being the same as wire-frame. (The dashed hidden line is lost in the plot).
I am sure many pdf writers handle thing differently.

I don’t think I understand what you mean by “hybrid printing of layouts …” Where is that? The attached image shows the raster result I get when I print a perspective view in shaded mode even if Vector is selected as the output.The various other non wireframe options (pen & artistic) also generate raster images. The point that I was making about SketchUp is that the options for outputting the attached image are raster, vector and hybrid and because the hybrid option creates a vector line drawing with shaded surfaces I can use the image after export as a vector - I can zoom into it, chop it up, reposition on the page, without loss of image quality. Which, as far as I can tell, I can’t do in Rhino. If I’m wrong and I can, please explain, I’d love to solve this problem.

Even if we PRINT from Illustrator?

Yeah, probably, but then you’ll loose layerstructures and all editable text blocks etc.
PDF is Adobes format, so passing it through a lower quality printerdriver has never occured to me as something I would do.

Yep it’s vector, but cruddy bunch-of-lines vectors.

this hybrid printing only works with a Layout. Many rhino users don’y even know they exist. That is what my earlier examples are from. As mentioned above the PDF version has vector lines for the call-outs and stuff because I used layouts. Unfortunately the quality of the raster image sucks so I can’t take advantage of this hybrid feature if I want to have good looking lines and instead find my self turning the whole thing raster by printing to image.

1 Like

Hmm… Those “cruddy bunch-of-lines” should not be visually different than the original curves.

Rhino does the converting of curves to lines. We break curves down into line segments that fit the curve within pixel tolerance (or “dot” tolerance for a printer"). For printing purposes, this produces a clean image. The problem that a lot of people are dealing with is that they want to later edit the pdf that is produced in an application like Illustrator and the dense polylines are much more painful to work with than beziers, arcs, and circles.

I understand this issue and it is what we are working toward improving in the future.

There should be no difference in printing the entire sheet to an image versus printing the layout raster. Could you help me by pointing out what the difference is that you are seeing?

*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.

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.

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:


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

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.