2009-09-02 4 views

ответ

0

Что такое "удобная для принтера функция в формате PDF"? Если вы имеете в виду формат для печати, который позволяет людям печатать или экспортировать/печатать в PDF, вам просто нужно использовать некоторые CSS. Это все клиентское программирование и не связано с вашим языком на стороне сервера.

1

Если содержание является статическим, просто ссылку на PDF
Если содержание является динамическим, вы можете:

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

    < язык сценариев = тип 'JavaScript' = 'приложение/JavaScript' >
    window.onload = функция() {window.print();};
    </скрипт >

  • Установите PDF Writer на сервере, и сделать PDF версий страницы. Это будет серьезно ухудшаться, так как каждый запрос к версии, «удобной для печати», запустит компонент и сделает печать. Если вам все еще нужно это сделать, я могу порекомендовать bioPDF. Просто возьмите текст HTML, который вы создали, сохраните его как файл на сервере, а затем запустите bioPDF со своего интерфейса ActiveX, чтобы сгенерировать PDF-версию из html-файла.

1

Вы можете использовать ABCpdf (бесплатно с программой LinkBack), чтобы сгенерировать PDF из HTML страницы (обратите внимание на ASP классический вариант).

В моем случае я меняю CSS на более удобную для принтера/PDF версию перед экспортом.

Вот код, я использую:

function CrearPDF(URL, FileName) 
    dim theDoc, theID, iAux 
    on error resume next 

    set theDoc = Server.CreateObject("ABCpdf4.Doc") 
    theDoc.Rect.Inset 20, 10 

    theID = theDoc.AddImageUrl(URL, True, 0, False) 

    do 
     If (theDoc.GetInfo(theID, "Truncated") <> "1") Then Exit Do 

     theDoc.Page = theDoc.AddPage() 
     theID = theDoc.AddImageToChain(theID) 
    loop 

    For iAux = 1 To theDoc.PageCount 
     theDoc.PageNumber = iAux 
     theDoc.Flatten 
    Next 

    theDoc.Save Server.MapPath("../temp/") + "\" + FileName 

    Set theDoc = Nothing 

    if err.number <> 0 then 
     CrearPDF = false 
    else 
      CrearPDF = true 
     Call OutputFile(Server.MapPath("../temp/"), nombreArchivo ) 
    end if 
end function 
0

Где я пишу книги, как содержание - руководства пользователя, например, - и вы хотите как HTML и PDF, я использую DocBook. Это язык XML, похожий на HTML, из которого вы можете получить HTML, PDF и другие такие выходные форматы. Есть много доступных наборов инструментов. DocBook лучше всего подходит для высоко структурированного контента без большого причудливого форматирования.

Если ваш сайт сильно нагружен графическим дизайном, таблицы стилей DocBook не будут очень полезными, поскольку они предназначены для простого форматирования ванили. Но вы можете написать свои собственные таблицы стилей с помощью XSLT. Переход с XML на HTML является простым. Для стороны PDF вы можете использовать программу компоновки страниц, такую ​​как InDesign, которая умеет импортировать XML, анализировать его и заливать содержимое в существующий макет. Недавно я услышал от кого-то, кто сделал это, чтобы они могли изменить текст своего сайта в одном месте, а затем сгенерировать версии HTML и PDF.

Смежные вопросы