AbcPdf Opacity AddImageHtml

0

Я использую AbcPdf и мне становится сложно использовать стиль Alpha/Opacity для рендеринга в .AddImageHtml().

Это нужно добавить как таблицу стилей, потому что я создаю pdf файл из своего html.

Некоторые изображения имеют непрозрачность, но не все, поэтому мне нужно поместить непрозрачность только для изображений, которые имеют непрозрачность как таблицу стилей.

Версия AbcPdf которую я использую, - 8.1.1.5

ОБРАЗЕЦ КОДА

 [HttpPost]
    [ValidateInput(false)]
    public virtual ActionResult GeneratePDF(string pdf)
    {
        Doc theDoc = new Doc();

        theDoc.AddImageHtml(pdf);
        theDoc.Rect.Inset(20, 20);
        string pathForSaving = Server.MapPath("~/Uploads");
        theDoc.Save(Path.Combine(pathForSaving, "htmlimport.pdf"));
        theDoc.Clear();

        return Json(new { }, "text/html");
    }

[ОБНОВЛЕНО]

У меня все еще есть проблема, но я применяю непрозрачность в своем изображении перед загрузкой. Другими словами, мое изображение было сохранено с непрозрачностью.

Несмотря на применение непрозрачности, отображаемое изображение не имеет непрозрачности. (Я проверил папку Upload и сохраненное изображение имеет непрозрачность)

Что здесь происходит?

[/ОБНОВЛЕНО]

Любая помощь будет оценена.

Благодарю.

  • 0
    Какую версию ABCPdf вы используете? Также предоставьте образец HTML ./
  • 0
    @malkassem Я обновил свой запрос.
Теги:
pdf
opacity
abcpdf

2 ответа

0

Это не ответ, но добавить к вопросу пример, который может быть более легко поддающимся проверке. Я получаю два серых ящика, где должны быть изображения. Я использую ABCPdf 9.1.

Doc docPDF = new Doc();

docPDF.HtmlOptions.Engine = EngineType.Gecko;
docPDF.HtmlOptions.ForGecko.RequestMethod = UrlRequestMethodType.Get;
//docPDF.HtmlOptions.ForGecko.Media = MediaType.Screen;
docPDF.HtmlOptions.ForGecko.UseScript = true;
docPDF.HtmlOptions.ForGecko.OnLoadScript = 
    "window.ABCpdf_go = false; " + 
    "setTimeout(function() {window.ABCpdf_go = true;}, 5000);";

docPDF.AddImageUrl("http://www.w3schools.com/css/tryit.asp?filename=trycss_image_transparency");
docPDF.Save(@".\out.pdf");
  • 0
    Что делает OnLoadScript?
  • 0
    Предоставляет код JavaScript, который вы, возможно, захотите выполнить перед копированием веб-страницы в PDF. В этом случае нужно просто подождать, пока страница будет полностью отображена. Для получения дополнительной информации см. Websupergoo.com/helppdfnet/source/5-abcpdf/xhtmloptions/…
0

Существует много возможных причин поведения, которое вы видите.

Опция 1

Css, который используется на вашей странице, не передается в AddImageHtml. Значение переменной pdf не имеет Css. Вы можете исправить это, добавив Css в html в теге стиля. Пример:

pdf += @"<style> your css code</style>";

Вариант 2

Версия IE на вашем сервере - IE8, и вы используете свойство Css Opacity, которое не поддерживается IE8. Чтобы исправить это, вы можете

а. используйте двигатель Gecko, добавив эту линию

doc.HtmlOptions.Engine = WebSupergoo.ABCpdf9.EngineType.Gecko;

б. обновить IE на сервере до IE9

с. измените свой Css на совместимость с IE8. проверьте этот поток Непрозрачность CSS не работает в IE8

  • 0
    все еще не работает. = / Моя таблица стилей я вставил в строку.
  • 0
    @ HugoS.Mendes как насчет варианта 2? Кроме того, вы можете предоставить образец HTML?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню