Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / надпись на pdf / 9 сообщений из 9, страница 1 из 1
02.03.2013, 11:05
    #38171863
virusserf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
Можно ли с помощью html/csc/java script в pdf файле добавить надпись на каждой странице?
...
Рейтинг: 0 / 0
02.03.2013, 15:02
    #38171973
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
И да, и нет ... )))
Штатными средствами сделать pdf на клиенте нельзя. Но на сервере с помощью соответствующих библиотек можно на основании html с использованием javascript и даже стилей сделать pdf.
...
Рейтинг: 0 / 0
02.03.2013, 17:23
    #38172040
Ха-Ха Ха-Ха
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
IDVsbruck пишет:

> на сервере с помощью соответствующих библиотек можно на основании html с
> использованием javascript и даже стилей сделать pdf

Можно поподробнее ? Я правильно понимаю, что есть некое средство для получения pdf из html+css ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.03.2013, 17:29
    #38172043
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
Да. Я, к примеру, на сервере использую Java и для формирования репортов в pdf использую библиотеку itext, которая в том числе формирует pdf-файл из скармливаемого ему html-файла (клиент на флексе может форматировать текст, он отдается серверу, слегка трансформируется и библиотекой выписывается в pdf). Кстати, она есть и для Java, и для C#.
...
Рейтинг: 0 / 0
02.03.2013, 17:37
    #38172047
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
IDVsbruckИ да, и нет ... )))
Штатными средствами сделать pdf на клиенте нельзя. Но на сервере с помощью соответствующих библиотек можно на основании html с использованием javascript и даже стилей сделать pdf.Не совсем верно тынц

ИМХО: Стандарт PDF открытый ( спецификация ) но бинарный и достаточно сложный ((((. На Js сложно работать с бинарными данными отсутствует строгая типизация ( ....
Разобрать PDF на клиенте и потом снова собрать в принципе возможно но крайне глупо =) готовых решений по моему нет

ИМХО2: Задачу нужно озвучивать полностью а не просить помочь в крайне нелепом решении =)
...
Рейтинг: 0 / 0
02.03.2013, 19:38
    #38172102
virusserf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
Малыхин Сергей,

нужно реализовать следующее:
1)имеются pdf файлы на сервере
2)при выкачке необходимо прописать вколонтитулах дату и имя пользователя, который выкачал файл.
...
Рейтинг: 0 / 0
02.03.2013, 19:40
    #38172104
virusserf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
нашел библиотеку звадши, которая работает с pdf-ками, но что-то не могу в ней найти как преобразовывать существующие...
...
Рейтинг: 0 / 0
03.03.2013, 17:30
    #38172554
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
Если файл лежит на сервере то и обрабатывать его нужно на сервере перед отправкой
...
Рейтинг: 0 / 0
03.03.2013, 20:32
    #38172660
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надпись на pdf
Умная английская книга ( спецификация ) подсказала что все достаточно просто =)

1. Берем исходный файл (PDF создан в microsoft office)
2. Добавляем в него пару своих объектов
Код: html
1.
2.
3.
100 0 obj
<</BaseFont/Helvetica/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1>>
endobj


Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
101 0 obj
<</Length 123>>
stream
0.57 w
0 G
BT
/F100 10 Tf
40 TL
0 g
99.21 811.02 Td
(Vasiliy Pypkin 03.03.2012) Tj
ET
q 510.24 0 0 510.24 42.52 218.27 cm /I0 Do Q
endstream
endobj

Первый объект это шрифт для колонтитула второй объект собственно сам колонтитул
3. Ищем все страницы в PDF они выглядят как
Код: html
1.
2.
3.
3 0 obj
<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 5 0 R/F2 10 0 R>>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<</Type/Group/S/Transparency/CS/DeviceRGB>>/Tabs/S/StructParents 0>>
endobj

т.е. объекты у которых есть "/Type/Page"
Этот объект нам нужно изменить добавить в ресурсы страницы наш шрифт а в контент страницы колонтитул за ресурсы отвечает строчка "/Resources ...." которая может ссылаться на объект или же как в случае с м.офисом не ссылаться. В общем нам нужно добавить свой шрифт т.е. строку "/Font<</F1 5 0 R/F2 10 0 R>>" заменить на "/Font<</F1 5 0 R/F2 10 0 R /F100 100 0 R>" где /F100 имя шрифта а 100 номер объекта шрифта.
За контент страницы отвечает строчка "/Contents ..." где указываются объекты в которых находится содержание страницы. нам нужно добавить свой объект с колонтитулом т.е. "/Contents 4 0 R" заменить на "/Contents [4 0 R 101 0 R]" где 101 это номер объекта колонтитула
Обработанный файл
В измененном файле достаточно просто исправлять строчку (Vasiliy Pypkin 03.03.2012) 18я строка в файле на любой текст
Заменить несколько байт в файле достаточно легко как на клиенте так и на сервере
Оказывается PDF достаточно прост и легок и понятен проще современного HTML

Но объекты в PDF могут быть сжаты или зашифрованы ("<</Filter/FlateDecode" или "<</Filter/Crypt") что может сильно усложнить ситуацию
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / надпись на pdf / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]