Имя: Пароль:
1C
1С v8
EPS в PDF конвертер
0 johnnik
 
14.02.25
10:44
Всем привет. С ЧЗ скачались марки в csv-формате и с пометкой "truncated". ЧЗ их опознаёт, но как сомнительные, хотя марки в порядке. Повторную печать система дала скачать в pdf-формате, но если в файле более 1000 марок, то pdf-формат недоступен, можно скачать только в csv (а он "truncated") и в EPS. Собственно, вопросов два:
1. Почему файл csv качался "truncated", что я мог не туда нажать (до этого десятки раз все было норм)
2. Как сконвертировать EPS в PDF. В нете миллион онлайн-ковертеров, но конвертить по одному или даже по 50 файлов за раз - задолбаешься, у меня их около 7000. Все просят платную подписку и я бы даже раскошелился на 5-7 долларов, но у них либо PayPal либо по карте и российскую не принимают.

Может кто знает онлайн или оффлайн-ковертер, который точно бесплатный. Пусть рекламу показывает, работает долго - похрену
1 Asmody
 
14.02.25
11:18
imagemagick.org -> convert img.eps img.pdf

у утилиты convert 100500 параметров, можно в density и прочее поиграться, чтобы нормальный результат был
2 Garykom
 
гуру
14.02.25
12:29
3 Fedor-1971
 
14.02.25
12:37
(0) по п.1 - например, в ЧЗ пришла девочка-попевочка и поставила галку в настройках знаков в режиме "А мне понравилось".
Тут лучше уточнять что за дела напрямую у ЧЗ
4 Кирпич
 
14.02.25
21:47
можно запитонить проблему

from PIL import Image  
import glob

images = [f for f in glob.glob("*.eps")]

for f in images:
    img = Image.open(f)
    img.save(f[:-3]+'pdf')

только нужно еще Ghostscript установить https://ghostscript.com/releases/gsdnld.html
5 johnnik
 
17.02.25
11:13
С конвертацией разобрался, но возник следующий вопрос. Каждая марка - это как бы один лист, а есть ли возможно как-то их разместить на одном листе 40-60 штук?
6 Кирпич
 
17.02.25
18:52
запитонить можно примерно так

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
import glob
import os

filetypes = "data/*.png"
outfile = "out.pdf"
rows = 10 #строк на странице
cols = 4 #колонок в строке

imgWidth = 10 #ширина картинки
imgHeight = 70 #высота картинки

files = sorted(glob.glob(filetypes), key=os.path.getmtime)

rows = []
st = 0
while st < len(files):
    rows.append(files[st:st+cols])
    st += cols

pdf_file = canvas.Canvas(outfile, pagesize=A4)
page = 1
for x, row in enumerate(rows):
    for y, filename in enumerate(row):
         pdf_file.drawImage(filename, x * imgWidth, y * imgHeight, imgWidth, imgHeight)

    pdf_file.showPage()
    print(f"page:{page}     \r", end="")
    page+=1
      
pdf_file.save()
print(f"total pages:{page}")
print("ok\n")
7 Chai Nic
 
17.02.25
18:55
Да по сути это одно и то же, в разной обертке. Всё это postscript.
8 Андрюха
 
18.02.25
08:17
(0) Почему CSV файл скачался "truncated" (обрезанный):

Ключевая фраза "в файле более 1000 марок"

Возможно, достигнут лимит размера файла CSV при генерации.
Может быть проблема с таймаутом при скачивании большого файла.
Иногда это защитный механизм системы, чтобы предотвратить слишком большие запросы.
9 johnnik
 
18.02.25
09:04
(6) Знать бы еще, как это делать
(7) Месяца 2-3 назад я делал по 2000 марок в csv и все было нормально
10 Кирпич
 
18.02.25
10:31
(9)"Знать бы еще, как это делать"
ну присылай свои марки, для примера. я у себя попробую, потом тебя научу. А так вабще скачай питон, установи либы и запускай. Там ума много не надо.
11 Кирпич
 
18.02.25
10:33
+(10) А ты чего с этими марками потом делать будешь? Нафига они тебе в pdf по 40 штук на страницу?
12 Garykom
 
гуру
18.02.25
10:49
(11) Вероятно печатать хочет
На листовом устройстве, не принтере этикеток
13 Garykom
 
гуру
18.02.25
10:51
(10) Нет смысла заморачиваться с питоном
Лучше прямо из 1С через (1)
Поставить ImageMagick с Ghostscript и вперед через командную строку
14 Кирпич
 
18.02.25
10:54
(13) "Нет смысла заморачиваться с питоном"
Чего там морочиться. Так уже готово. Проверить только осталось
15 johnnik
 
18.02.25
13:44
(10)  Выслал
16 Кирпич
 
18.02.25
13:47
(15) ок
Основная теорема систематики: Новые системы плодят новые проблемы.