Editar: parece que meu amigo pode instalar o IrfanView se isso ajudar.
Estou ajudando um amigo a automatizar a tarefa de imprimir cada arquivo de imagem de uma pasta em vários PDFs: Cada imagem vai para um PDF diferente em um computador com Windows 10. Meu amigo trabalha em um ambiente corporativo com regras rígidas de instalação e como tal há muitas coisas que não podem ser instaladas, como
- não em uma máquina virtual
- até agora, eu sei que ele não consegue instalar imagemagick, 2pdf, foxit
- ele TEM o Acrobat Reader e o PDF-XChange Pro, porém, não tenho certeza se isso ajuda, não encontrei nada útil com este software até agora
- alguns dos arquivos de imagem para imprimir estão nesses arquivos tiff especiais em que uma única imagem tem várias "páginas" de imagens, acho que é chamado de mtif ou multifif? Quando o script os imprime, ele produz apenas um PDF com a primeira “página”. O resultado desejável seria um único arquivo PDF de várias páginas.
- quanto mais "em segundo plano" o script for executado, melhor.
O que fiz até agora foi um script em lote muito simples que aproveita as vantagens da impressora virtual "Microsoft Print to PDF" e da linha de comando mspaint. Se eu pudesse de alguma forma ativar a impressora "Microsoft Print to PDF" através de outro comando além do mspaint, talvez eu pudesse pelo menos resolver o problema de impressão multitif em um único PDF com todas as "páginas" dentro. Digo isso porque se eu imprimir o mtif usando a GUI do mspaint, replico o mesmo problema. (um mtif produzindo um PDF com uma única página").
ATUALIZAÇÃO: Também pode ser apenas uma coincidência e o problema se deve de alguma forma ao fato de ser uma operação em lote. O /print="Microsoft Print to PDF" do IrfanView produz o mesmo resultado indesejável de um PDF de página única com apenas a primeira imagem do referido multitiff como saída do referido comando.
Este é o script em lote que fiz até agora
@echo off
echo This script will print all the images in this foldes
echo so long as they are openable with mspaint
echo and print in a new, unique folder inside %~dp0
for %%i in (*.jpg) do (
mspaint /pt %%i "Microsoft Print to PDF"
)
for %%i in (*.jpeg) do (
mspaint /pt %%i "Microsoft Print to PDF"
)
for %%i in (*.png) do (
mspaint /pt %%i "Microsoft Print to PDF"
)
for %%i in (*.tif) do (
mspaint /pt %%i "Microsoft Print to PDF"
)
Meu amigo já me agradeceu com o script, pois, embora o script solicite o nome e o destino de cada arquivo pdf, ele ainda economiza alguns tempo e cliques. Quero fazer melhor e ainda há aquele problema em relação aos arquivos mtif.
Tenho código preparado para criar a pasta
@echo off
mkdir Img2Pdf%date:~-4,4%"-"%date:~-7,2%"-"%date:~-10,2%" - "%time:~0,2%"h"%time:~3,2%"m"%time:~6,2%"s"
pause
E acho que não será problema adicionar a cópia/mover o arquivo resultante para a pasta ou adicionar um nome ao arquivo. Mas a falta de opções de impressão que encontrei até agora tem sido uma tarefa bastante difícil. Quais são minhas opções? Acho que nenhum!
Obrigado pelo seu tempo lendo isso, se houver alguma maneira de melhorar a pergunta, me avise, desculpe se o código/ortografia pode assustar alguns de vocês, já que não é o código mais otimizado ou a redação mais correta, peço que tenham paciência comigo e seja gentil, se possível.
Responder1
O processo de impressão em arquivo PDF precisa de mais tempo, deve ser lento, sugiro que você possa converter arquivos de imagem para arquivos PDF diretamente, a conversão direta é muito rápida e sem perdas de qualidade, por exemplo, você pode usar VeryPDF Image to PDF Converter software para converter em lote todos os seus arquivos de imagem em arquivos PDF instantaneamente.