2015-06-11 33 views
2

я работаю на корпоративный арт-проект, который требует от меня:Работа с и печати больших текстовых файлов

  1. Возьмите каждую строку кода в нашем мерзавца репо (сотни тысяч) и объединить их в один строка в одном файле. - Это было завершено, но файл довольно большой (122mb)
  2. Этот файл необходимо преобразовать в готовый к печати формат (PDF, EPS и т. Д.) В четырех очень больших (3 х 8 дюймов/300 точек на дюйм) плакаты.

Вот что я пробовал:

  • Illustrator (копировать/вставить аварии)

  • InDesign (сбои)

  • Acrobat (сбои)

  • PHP (я могу получить файл для отображения на достаточно большой веб-странице, но любой вид печати-в-pdf, e дц только делает мой браузер умереть - см код ниже)

-

$READ_LEN = 64*1024; 
$MAX_BUF_LEN = 2*$READ_LEN; 

$url = "../thisisit.txt"; 
$handle = fopen($url, "r") or die("Couldn't get handle"); 
if ($handle) { 
    while (!feof($handle)) { 
     $buffer = fgets($handle, 4096); 
     // Process buffer here.. 
     echo htmlentities($buffer); 
    } 
    fclose($handle); 
} 

Мои вопросы заключаются в следующем:

  • Есть ли лучший способ иметь дело с текстовым файлом такого размера?

  • Есть ли способ передать поток текстового файла (через команду оболочки, например cat) в PDF-обертку напрямую?

  • Неужели я безумный за попытку сделать это?

+0

так как вам нужно 4 отпечатка ... Вы пытались разбить этот 122-мегабайтный файл на 4 файла ~ 30 мб каждый? – RightClick

+0

звучит так, будто вам нужно больше оперативной памяти. InDesign должен иметь возможность обрабатывать много текста, и вам может потребоваться настроить View> Display Performance – cmorrissey

ответ

0

Я сделал короткий тест для вас с помощью XSL FO (используя RenderX XEP). Я довольно уверен, что это может быть, но я считаю, что вам нужно сделать некоторые расчеты. Я создал страницу с размером, которую вы указываете, никаких полей вообще с некоторым текстом (около 3,2 МБ). Форматирование с размером шрифта 1pt занимает около 1/6 от размера страницы 96inx36in.

Figure 1: Partial document snapshot

The XSL FO проста:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" 
    font-family="Courier" font-size="1pt"> 
    <fo:layout-master-set> 
     <fo:simple-page-master master-name="backgrad" page-width="8*12in" page-height="3*12in"> 
      <fo:region-body/> 
      <fo:region-before extent="11in"/> 
     </fo:simple-page-master> 
    </fo:layout-master-set> 
    <fo:page-sequence master-reference="backgrad"> 
     <fo:flow flow-name="xsl-region-body"> 
      <fo:block> 
       hjdskjhdkh dskjhdskjhsd kjsdkjsd jksd ksdkjsdkj 
    <!-- snipped --> 

The resulting PDF @ 600% zoom

Вам нужен 64-битной машине и 64-битной Java с около 2 Гб памяти. Я сделал еще одно испытание 23 МБ, и он почти заполнил страницу PDF. Вероятно, вы можете поместить его под шрифтом 0,7 или 0,8 п.

Вот пример текстового файла 28 МБ с текстовым шрифтом @ 1pt - он разливается на две страницы. СОВЕТ. Не используйте браузер для его просмотра, он не может обрабатывать этот PDF-файл, хотя он всего 127kb. Загрузите и используйте Adobe Reader. HINT2: если вы загружаете и открываете его, это может выглядеть как большая черная капля. Вам нужно увеличить примерно до 400%, чтобы начать видеть вещи. Это 1/72inch шрифт на 36inch высокой бумаги или около 2500 строк текста на страницу.Poster PDF

+1

Честно говоря, я поражен и невероятно благодарен за то, что вы пошли бы на эти длины, чтобы объяснить и наметить решение моей проблемы. Я попробую это и дам вам знать, если это сработает или нет. – gabemcc

+0

Думаю, вам понадобится RenderX, чтобы это сделать. Я не думаю, что Apache FOP будет работать. К счастью для вас ... Я там работаю и могу получить временную лицензию и настроить. Вы можете написать мне через «кевин» в renderx. –

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