Насколько я вижу, они зафиксировали его в версии 0.12.3. Я использую Fedora 16 и должен был скомпилировать его из источника - http://yorba.org/shotwell/install.html
Для установки любого дистрибутива на любое устройство можно использовать unetbootin
. Это автономный исполняемый файл, поэтому нет ничего для установки, просто загрузите его и запустите.
Unetbootin предлагает большинство основных distros как Live, так и обычных версий.
ПРИМЕЧАНИЕ: Эти живые бедствия больше, чем одна и та же система между перезагрузками. Многие предлагают динамическую область, где можно сохранить изменения, чтобы можно было установить дополнительное программное обеспечение и настроить рабочий стол, и она останется для следующей перезагрузки.
Например, ознакомьтесь с документацией Ubuntu Persistence :
-121--81261-На этой странице объясняется, как улучшить LiveCD только для чтения путем добавления постоянное место хранения файлов на другом диске. В более позднем Ubuntu версии, вы можете вместо этого использовать инструмент usb-creator для создания загрузочный USB-флеш-накопитель с Live CD, а его пользовательский интерфейс имеет возможность добавления постоянного хранилища на том же USB-накопителе
Вот еще один, использующий форматирование выходных данных из ps
:
#!/usr/bin/sh -f
printf '%-8.7s%-8s%s\n' $(
ps -o uname=UID,pid=PID,args=APPNAME |
sed -n '1p;s/\( [0-9]* \).*\(-Dapp.name=[^ ]*\).*/\1\2/p'
)
На основе строки формата, на каждые 3 его аргумента printf
будет печататься:
\n
ewline. Подстановка команды не цитируется специально . Обратите внимание на -f
, следующий за sh
в bang-line - он указывает, что оболочка должна не glob - поэтому нет опасности случайного создания имен файлов на основе специальных символов оболочки. Замена команды будет разделена на значения по умолчанию $ IFS
- космоса, tab, newline.
В подмене команды ps
печатает столбцы 3 - с UID , PID и APPNAME . ps
указан POSIX не для печати мест в любом поле , за исключением поля args =
. Таким образом, первые два столбца являются $ IFS
безопасными. Тем не менее, чтобы получить строку -Dapp.name
из поля args =
, ее необходимо обработать.
Поэтому sed
фильтрует его. В строках, содержащих по крайней мере два космический и строку -Dapp.name = , она печатает:
sed
не влияют на заголовки столбцов, напечатанные с 1p
, поскольку они не содержат -Dapp.name = последовательностей.Все остальные строки удаляются из выходных данных.
После применения printf
к sed
произвел разделение на $IFS
, вы можете ожидать продукцию как следующее:
UID PID APPNAME
sas 24431 -Dapp.name=myApp
sas 24431 -Dapp.name=myApp
sas 24431 -Dapp.name=myApp
sas 24431 -Dapp.name=myApp
sas 24431 -Dapp.name=myApp
, По-моему, тем не менее, этот заявление sed
работало бы немного лучше:
sed -n '1p;s/\( [0-9]* \).*-Dapp.name=\([^ ]*\).*/\1\2/p'
Это - в основном то же, за исключением того, что полосы -Dapp.name = часть от \2
, таким образом, это печатает как...
UID PID APPNAME
sas 24431 myApp
sas 24431 myApp
sas 24431 myApp
Потому что, поскольку это только печать строк, содержащих последовательность -Dapp.name = в любом случае, включая это своего рода просто нагромождение, которое в противном случае можно воспринимать как должное.
-121--78154-Я нашел эти 2 метода через Google, в этом потоке под названием: Re: Сведение PDF-файлов в командной строке UNIX .
Метод # 1 - при использовании преобразования Imagemagick:$ convert orig.pdf flattened.pdf
ПРИМЕЧАНИЕ: Качество, как сообщается, является таким при таком подходе.
Метод # 2 - Использование pdf2ps - > ps2pdf:$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf
ПРИМЕЧАНИЕ: Сообщается, что этот метод сохраняет качество изображения.
Ghostscript (gs) работал лучше, чем pdf2ps
и convert
для меня. Качество почти не ухудшилось, а размер файла небольшой.
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf
Найдено здесь: http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/
Хотя convert будет сохранять тот же размер файла, я обнаружил, что он медленный.
Метод pdf2ps ps2pdf работает быстрее, но я заметил, что он увеличивает размер файла.
pdftk хорош тем, что он не только быстр, но и сохраняет аналогичный размер файла.
Это то, что я использую для массового выравнивания каталога.
function pdfflatten () {
pdftk "$1" output "$2" flatten
}
export pdfflatten
alias pdfflattenDIR='mkdir flattenedPDFs; for i in `seq $(ls *.pdf | wc -l)`; do a=`ls *.pdf | head -$i | tail -1`; pdfflatten "$a" flattenedPDFs/"$a"; done'
В конце 2016 г. Ghostscript изменил значение по умолчанию для выравнивания аннотаций.
Теперь, чтобы просто свести PDF, вам нужно-dPreserveAnnots=false
Теперь простая командная строка
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-dPreserveAnnots=false \
-sOutputFile=document_flat.pdf document_original.pdf
Мне часто приходится сводить PDF-файлы или делать из них -только изображения. Я хотел сделать это быстро из Nautilus, а не заходить в терминал, поэтому я создал два сценария Nautilus на основе предыдущих ответов. Я делюсь инструкциями на случай, если они будут полезны другим.
Создать скрипт для выравнивания PDF-файлов:
~/.local/share/nautilus/scripts/
FlattenPDF.sh
)Properties
→ Permissions
→Allow executing file as program
) #!/bin/bash
# Flattend PDFs
IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
if [ -f "$file" ]; then
base=${file%.*}
ext=${file##*.}
newname=${base}_flat.pdf
gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite -dPreserveAnnots=false -sOutputFile=$newname $file
fi
done
Создать сценарий для создания изображения -только (текст не доступен для поиска или выбора )PDF-файлы:
~/.local/share/nautilus/scripts/
ImageOnlyPDF.sh
)Properties
→ Permissions
→Allow executing file as program
) #!/bin/bash
# Image-only PDFs
IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
if [ -f "$file" ]; then
base=${file%.*}
ext=${file##*.}
newname=${base}_img.pdf
gconvert -density 200 $file $newname
fi
done
Перезапустите Nautilus (, например, введите nautilus -q
, чтобы выйти из Nautilus, а затем снова откройте Nautilus из Dash ). Если вы щелкните правой кнопкой мыши -файл, вы должны увидеть меню Scripts
с новыми скриптами.