We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Define Page Size when Rendering

How can I specify the size of the rendered Bitmap when using DocumentRenderer? I would expect to be able to specify the resolution or bitmap size that’s rendered.

Thanks,
flyguy

Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Thanks for your inquiry. Unfortunately there is no built-in functionality for specifying image resolution during rendering. You can use custom function to achieve this. For example see the following code:

public void Test013()

{

Document doc = new Document(@"Test013\in.doc");

DocumentRenderer renderer = new DocumentRenderer(doc);

Bitmap[] pages = renderer.GetPages();

for (int i = 0; i < pages.Length; i++)

{

Image picture = ResizeImage((Image)pages[i], 100, 100);

picture.Save(String.Format(@"Test013\out_{0}.jpg", i));

}

}

///

/// Resize source image to specifed sze

///

/// Source image

/// Target width

/// Target height

/// Resized image

public static Image ResizeImage(Image sourceImage, int targetWidth, int targetHeight)

{

float ratioWidth = (float)sourceImage.Width / targetWidth;

float ratioHeight = (float)sourceImage.Height / targetHeight;

if (ratioWidth > ratioHeight)

targetHeight = (int)(targetHeight * (ratioHeight / ratioWidth));

else

{

if (ratioWidth < ratioHeight)

targetWidth = (int)(targetWidth * (ratioWidth / ratioHeight));

}

// create target image

Bitmap targetImage = new Bitmap(targetWidth, targetHeight, PixelFormat.Format24bppRgb);

// set transform parameters

using (Graphics g = Graphics.FromImage(targetImage))

{

g.CompositingQuality = CompositingQuality.HighQuality;

g.SmoothingMode = SmoothingMode.HighQuality;

g.InterpolationMode = InterpolationMode.HighQualityBicubic;

// resize image

Rectangle rc = new Rectangle(0, 0, targetImage.Width, targetImage.Height);

g.DrawImage(sourceImage, rc);

}

return (Image)targetImage;

}

Hope this helps.

Best regards.

This approach works is acceptable when resizing the image smaller, but not when enlarging for purposes such as zooming.

Is there a way to determine the number of pages in a word document without calling renderer.GetPages()? I would think there would be a much more efficient way for getting the number of pages without actually rendering.

Thanks

Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Thanks for your inquiry. Aspose.Words document represents content and formatting of a document, not its layout into lines and pages. This feature is called pagination and it is not released yet. Please see FAQ for more information.

You can try using BuildInDocumentProperties.Pages to get count of pages.

http://www.aspose.com/documentation/file-format-components/aspose.words-for-.net-and-java/aspose.words.properties.builtindocumentproperties.pages.html

But this count could be not actual.

Best regards.

Thanks - that’s helpful. Do you have an estimate of when the word viewing will be out of beta?

Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Thanks for your inquiry. Unfortunately I can’t provide you any reliable estimate at the moment. The estimate was pushed several times.

Best regards.

I understand. The problem of rendering Word documents is massive and I like what I see - at least for a beta. Please have your sales team respond to the email I sent yesterday to sales.

Hello,

Shelia Holt will be answering your email shortly. I have sent it to her a little bit ago. I will be out of the office for the next few days so please feel free to email her with any questions. shelia.holt@aspose.com.