GroupDocs.Viewer ships with the CadOptions class that allows you to specify different options for rendering CAD files. To access these options, use the setCadOptions methods for one of the following classes (depending on the output file format):
The following code snippet converts a CAD drawing to PDF and sets the background color of PDF pages to light yellow:
constjava=require('java')constColor=java.import('java.awt.Color')constviewer=newgroupdocs.viewer.Viewer("HousePlan.dwg")// Convert the document to PDF.
constviewOptions=groupdocs.viewer.PdfViewOptions("output.pdf")// Specify the background color.
viewOptions.getCadOptions().setBackgroundColor(Color.YELLOW)viewer.view(viewOptions)
The following image illustrates the result:
Configure the output image size
When rendering a CAD drawing, GroupDocs.Viewer creates an image with the largest dimension (width or height) set to 2000 pixels. The other dimension is calculated based on the aspect ratio of the original drawing. You can use the following methods to change the width and height of the output file:
CadOptions.forRenderingByWidth—Specifies the output image width in pixels. The image height is calculated based on the aspect ratio of the original CAD drawing.
CadOptions.forRenderingByHeight—Specifies the output image height in pixels. The image width is calculated based on the aspect ratio of the original CAD drawing.
CadOptions.forRenderingByScaleFactor—Specifies a scale factor to apply to the output image. Values between 0 and 1 decrease the image size, and values greater than 1 increase the image.
The following example converts a CAD drawing to PNG format and reduces the width and height of the output image by 50%:
constviewer=newgroupdocs.viewer.Viewer("HousePlan.dwg")// Create a PNG image for the drawing.
constviewOptions=groupdocs.viewer.PngViewOptions("output.png")// Specify a scale factor.
viewOptions.setCadOptions(groupdocs.viewer.CadOptions.forRenderingByScaleFactor(0.5))viewer.view(viewOptions)
When you render all layouts/sheets contained in a CAD file (pass true to the CadOptions.setRenderLayouts method), each layout/sheet is rendered as a separate page/image and has its own size. In this case, when you specify only the width or height value, the other side is scaled proportionally to maintain the aspect ratio of each layout/sheet. When you set both width and height, all generated images have the same size and may look distorted. To avoid this, use the CadOptions.setLayoutName method to render each layout/sheet separately and set its size.
Apply the PC3 file settings
AutoCAD allows you to configure plotter settings and save them as a PC3 file (Plotter Configuration Version 3) for later use. With GroupDocs.Viewer, you can apply width and height values from a PC3 file to the output file when you convert your CAD drawing to HTML, PDF, or image format. Use the CadOptions.setPc3File method for a target view to specify a path to the PC3 file with required settings. The default location for PC3 files is “C:\Users\[Username]\AppData\Roaming\Autodesk\AutoCAD [Version]\[Version Code]\[Language]\Plotters”.
constviewer=newgroupdocs.viewer.Viewer("sample.dwg")// Convert the diagram to PDF.
constviewOptions=groupdocs.viewer.PdfViewOptions("output.png")// Specify a path to the PC3 file.
viewOptions.getCadOptions().setPc3File("small_page.pc3")viewer.view(viewOptions)
Split a drawing into tiles
With GroupDocs.Viewer, you can split a CAD drawing (in DWG or DWT format) into parts (tiles) and render each part separately. Tiled rendering allows you to reduce memory usage when you convert large drawings to HTML, PDF, or image format. When tiled rendering is enabled, GroupDocs.Viewer renders only the model space layout (Model) and ignores the CadOptions.RenderLayouts and CadOptions.LayoutName property values.
To create an individual tile, instantiate a Tile object. Specify the x- and y-coordinates of the tile’s lower-left corner and the tile width and height (in pixels). The image below illustrates a coordinate system used to define the tile position. The origin (0,0) is located in the lower-left corner of the drawing. The positive x-axis extends horizontally to the right, and the positive y-axis is oriented vertically from bottom to top.
After you create all tiles, add them using the ViewOptions.getCadOptions().setTiles method and call the Viewer.view method to convert these tiles to a desired format. Each tile will be rendered as a separate page/image.
The following example demonstrates how to split a CAD drawing into four tiles (2x2) of equal size:
constviewer=newgroupdocs.viewer.Viewer("HousePlan.dwg")constviewInfoOptions=groupdocs.viewer.ViewInfoOptions.forHtmlView()constviewInfo=viewer.getViewInfo(viewInfoOptions)// Get the width and height of the CAD drawing.
constwidth=viewInfo.getPages().get(0).getWidth()constheight=viewInfo.getPages().get(0).getHeight()// Calculate the width and height of each tile.
lettileWidth=width/2lettileHeight=height/2letpointX=0letpointY=0// Split the drawing into tiles and convert them to HTML.
// {0} is replaced with the tile number in the output file name.
constviewOptions=groupdocs.viewer.HtmlViewOptions.forEmbeddedResources("page_{0}.html")lettile=newgroupdocs.viewer.Tile(pointX,pointY,tileWidth,tileHeight)viewOptions.getCadOptions().getTiles().add(tile)pointX+=tileWidthtile=newgroupdocs.viewer.Tile(pointX,pointY,tileWidth,tileHeight)viewOptions.getCadOptions().getTiles().add(tile)pointX=0pointY+=tileHeighttile=newgroupdocs.viewer.Tile(pointX,pointY,tileWidth,tileHeight)viewOptions.getCadOptions().getTiles().add(tile)pointX+=tileWidthtile=newgroupdocs.viewer.Tile(pointX,pointY,tileWidth,tileHeight)viewOptions.getCadOptions().getTiles().add(tile)viewer.view(viewOptions)
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.