Откъде идват долната и дясната граница в abcPdf

Защо получавам рамка отдолу и отдясно, когато изобразявам html с помощта на abcAdf. PS Получих професионален лиценз с помощта на (ABCpdf9-64.dll)

Моят процес е да създам страница:

  1. Използвам главен / дъщерен шаблон за оформление в mvc (работи)
  2. Посочвам този html с помощта на abcPdf за конвертиране в pdf

Изобразен HTML

Когато моят html се визуализира (обикновен) формат: всеки произхожда от съответното му местоположение.

<h1>Layout</h1>
<p>
    content
</p>

C# код за изобразяване на pdf

Моят код е както следва:

        using (var pdf = new Doc())
        {
            pdf.HtmlOptions.Timeout = 600000;

            pdf.HtmlOptions.AddTags = true;
            pdf.Page = pdf.AddPage();

            var id = pdf.AddImageUrl(url, true, 1024, true);
            if (allowPaging)
            {
                while (true)
                {
                    if (!pdf.Chainable(id))
                    {
                        break;
                    }

                    pdf.Page = pdf.AddPage();
                    id = pdf.AddImageToChain(id);
                }

                for (int i = 1; i <= pdf.PageCount; i++)
                {
                    pdf.PageNumber = i;
                    pdf.Flatten();
                }

                ////reset back to page 1 so the pdf starts displaying there
                if (pdf.PageCount > 0)
                {
                    pdf.PageNumber = 1;
                }
            }

            return store(pdf);
        }

Изход

Моят текст/html се изобразява добре, но получавам граници, които не съм поискал.

Рендиран изход:

въведете описание на изображението тук

Моля, обърнете внимание на линията на косата в долната част на изображението.


person cpoDesign    schedule 03.02.2015    source източник
comment
Какво е abcPdf.GetPdfDoc? Не мога да намеря такова обаждане в официалната документация на ABCpdf.   -  person Ross Presser    schedule 04.02.2015
comment
@RossPresser Актуализирах моя пример, като премахнах функция, която прилагаше лиценз   -  person cpoDesign    schedule 05.02.2015
comment
Тази граница действително ли е в PDF файла или е изобразена от вашия зрител?   -  person CodeCaster    schedule 05.02.2015
comment
Изобразява, когато конвертирам html в pdf (ie9)   -  person cpoDesign    schedule 05.02.2015


Отговори (1)


След часове гугъл относно задаването на марж в abcpdf не намерих нищо и го приех като предизвикателство да го намеря сам. Опитах се да експериментирам с всичко, което намерих за подходящо в документацията на abcpdf, и накрая сам направих диаграма за задаване на полета. Успешно съм прилагал това в много ситуации. Надявам се това да помогне на другите.

Ето кодов фрагмент, който показва как да зададете маржове-

низ html; // моето html съдържание, което трябва да се показва в pdf страницата

            Doc pdf = new Doc();

            // adjust the default rotation and save
            double w = pdf.MediaBox.Width;
            double h = pdf.MediaBox.Height;
            double l = pdf.MediaBox.Left;
            double b = pdf.MediaBox.Bottom;

            // explicitly giving page size
            pdf.MediaBox.String = "A4";
            pdf.Transform.Rotate(90, l, b);
            pdf.Transform.Translate(w, 0);
            pdf.Rect.Width = h;
            pdf.Rect.Height = w;

            int theID1 = pdf.GetInfoInt(pdf.Root, "Pages");
            pdf.SetInfo(theID1, "/Rotate", "90");

            int theID;
            pdf.Rect.String = "17 55 823 423";
            theID = pdf.AddImageHtml(html.ToString()); //Writes the HTML image to PDF

Ето снимка, която описва оформлението на полето за някои нежелани стойности. Тук 20 предполага, че вашето съдържание започва на 20 пиксела отляво на вашата pdf страница 770 предполага, че вашето съдържание завършва на 770 пиксела отляво на вашата pdf страница 75 предполага, че вашето съдържание започва 55 пиксела над дъното на вашата pdf страница 600 предполага, че вашият съдържанието завършва на 600 пиксела над дъното на вашата pdf страница

abcpdf марж диаграма от CoffeeSipper

Във вашия случай трябва да добавите

pdf.Rect.String = "20 75 770 600"; // giving junk values

точно преди

var id = pdf.AddImageUrl(url, true, 1024, true);

ЗАБЕЛЕЖКА: В този пример изрично задавам пейзажен режим вместо портретен режим. Но ориентацията няма значение за задаване на полета.

person CoffeeSipper    schedule 24.04.2015