Dire abcPdf à l'échelle de l'html pour tenir sur une seule page pdf

Je suis en utilisant abcPdf de convertir un fichier HTML dans un fichier pdf. Le pdf d'une seule page A4 paysage.

Savez-vous s'il existe une façon de dire abcPdf à l'échelle de la page HTML pour tenir sur une seule page dans le pdf? J'ai essayé d'utiliser le Agrandir() la méthode, et il met à l'échelle le contenu, mais encore, il tombe dans les pages, même si c'était sur une page. J'ai été de me gratter la tête sur ce pendant un certain temps maintenant, et je me demande si quelqu'un l'a fait.

Voici le code que j'utilise pour le moment:

public byte[] UrlToPdf(string url, PageOrientation po)
{
using (Doc theDoc = new Doc())
{
//When in landscape mode:
//We use two transforms to apply a generic 90 degree rotation around
//the center of the document and rotate the drawing rectangle by the same amount.
if (po == PageOrientation.Landscape)
{
//apply a rotation transform
double w = theDoc.MediaBox.Width;
double h = theDoc.MediaBox.Height;
double l = theDoc.MediaBox.Left;
double b = theDoc.MediaBox.Bottom;
theDoc.Transform.Rotate(90, l, b);
theDoc.Transform.Translate(w, 0);
//rotate our rectangle
theDoc.Rect.Width = h;
theDoc.Rect.Height = w;
//To change the default orientation of the document we need to apply a rotation to the root page object.
//By doing this we ensure that every page in the document is viewed rotated.
int theDocID = Convert.ToInt32(theDoc.GetInfo(theDoc.Root, "Pages"));
theDoc.SetInfo(theDocID, "/Rotate", "90");
}
theDoc.HtmlOptions.PageCacheEnabled = false;
theDoc.HtmlOptions.AddForms = false;
theDoc.HtmlOptions.AddLinks = false;
theDoc.HtmlOptions.AddMovies = false;
theDoc.HtmlOptions.FontEmbed = false;
theDoc.HtmlOptions.UseResync = false;
theDoc.HtmlOptions.UseVideo = false;
theDoc.HtmlOptions.UseScript = false;
theDoc.HtmlOptions.HideBackground = false;
theDoc.HtmlOptions.Timeout = 60000;
theDoc.HtmlOptions.BrowserWidth = 0;
theDoc.HtmlOptions.ImageQuality = 101;
//Add url to document.
int theID = theDoc.AddImageUrl(url, true, 0, true);
while (true)
{
if (!theDoc.Chainable(theID))
break;
theDoc.Page = theDoc.AddPage();
theID = theDoc.AddImageToChain(theID);
}
//Flattening the pages (Whatever that means)
for (int i = 1; i <= theDoc.PageCount; i++)
{
theDoc.PageNumber = i;
theDoc.Flatten();
}
return theDoc.GetData();
}
}

OriginalL'auteur beon | 2010-01-25