Date: prev next · Thread: first prev next last


Prezada Tamires,

Uso o LibO 3-4-4 na plataforma Rwindows XP SP3.

A situação descrita por você aconteceu comigo. Fiz outro teste e não
funciona quando seleciono o padrão RTF. Simplesmente o arquivo gerado
não possui os campos.

Acredito que este "0" que o LibO coloca é para você ter o arquivo
quando fizer novamente o procedimento. Neste caso ele gera o
sequencial "1" para os arquivos já existentes, e assim sucessivamente.

Caso você não queira o caractere "0", a solução trabalhosa seria
retirar o caractere "0" de cada arquivo.

Fiz um roteiro em linguagem M$DOS para remover automaticamente o
último caractere antes da extensão PDF de todos os arquivos em uma
determinada pasta.

Salve este roteiro com um nome do tipo "tira último caractere.bat" na
pasta onde foram gerados os PDFs.

A máscara é PDF mas pode ser facilmente alterada na própria rotina. O
último caractere a ser retirado será perguntado, mas pode ser passado
por parâmetro na linha de comandos.

Saudações solidárias,

João

P. S. 1: Se alguém tiver dúvida sobre a rotina, favor mandar apenas
para mim (joao@sisejufe.org.br). Lembro que apenas testei no XP. Mas
posso testar em um outro sistema Rwindows, para adaptá-la a um caso
específico.

P. S. 2: Acho que tinha que ser aberto um chamado para resolver esta
questão do "0" e o erro de não gerar o RTF corretamente. Não o fiz por
não dominar a escrita no idioma imperialista da atualidade.


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: Rotina que retira o último caractere do nome do arquivo
::
@MODE CON CP SELECT=1252 >NUL 2>NUL
@SETLOCAL ENABLEDELAYEDEXPANSION

@ECHO OFF

@SET _MÁSCARA=*.pdf

@IF "%~1"=="" (
   @SET /P _ENTRADA=Entre com o £ltimo caractere a ser retirado ==^>
) ELSE (
   @SET _ENTRADA=%~1
)
@IF "%_ENTRADA%"=="" @GOTO MODO
@SET _ENTRADA=!_ENTRADA:~0,1!
@ECHO Caractere a ser retirado ^>%_ENTRADA%^<

@FOR %%A IN (%_MÁSCARA%) DO (
   <NUL (@SET /P _=%%A... )
   @SET _NOME=%%~NA
   @CALL :POSIÇÃO-ÚLTIMO-CARACTERE "!_NOME!"
   @IF !__RETORNO! GTR -1 (
      @CALL SET _ÚLTIMO=%%_NOME:~!__RETORNO!,1%%
      @IF "!_ÚLTIMO!"=="%_ENTRADA%" (
         @CALL SET _ÚLTIMO=%%_NOME:~0,!__RETORNO!%%
         @SET _ÚLTIMO=%%~DPA!_ÚLTIMO!%%~XA
         @IF EXIST "!_ÚLTIMO!" (
            @ECHO 1 = :( Arquivo destino (!_ÚLTIMO!^) existente
         ) ELSE (
            @COPY /B /Y "%%~FA" "!_ÚLTIMO!" >NUL 2>NUL
            @IF NOT EXIST "!_ÚLTIMO!" (
               @ECHO 4 = :( Problema na permissÆo ao criar o arquivo
(!_ÚLTIMO!^)
            ) ELSE (
               @ECHO 0 = :^) Arquivo criado com sucesso (!_ÚLTIMO!^)
               @DEL /F /Q "%%~FA" >NUL 2>NUL
               @IF EXIST "%%~FA" (
                   @ECHO 5 = :( Problema na permissÆo ao remover o
arquivo (%%~FA^)
               )
            )
         )
      ) ELSE (
         @ECHO 2 = :( Caractere final diferente
      )
   ) ELSE (
      @ECHO 3 = :( Tamanho zero
   )
)

@SET _=
@SET _MÁSCARA=
@SET _ENTRADA=
@SET _NOME=
@SET _ÚLTIMO=
@SET __RETORNO=
@GOTO FIM

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: O que faz a rotina?
::
:MODO
@ECHO.
@ECHO Tira o £ltimo caractere antes da extensÆo.
@ECHO  necess rio passar qual o caractere deve ser retirado.
@ECHO.
@ECHO Use "%~nx0" caractere-a-ser-retirado
@ECHO.
@ECHO Exemplo: "%~nx0" 0
@ECHO       Retirar  o caractere 0 em todos os arquivos da pasta atual,
@ECHO    se for o £ltimo caractere antes da extensÆo.
@ECHO.
@GOTO FIM

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: Função que retorna a posição do último caractere
::
:POSIÇÃO-ÚLTIMO-CARACTERE

@SET __ENTRADA= %~1
@SET /A __POSIÇÃO=0

:PRÓXIMOCARACTERE
@CALL SET __AUXILIAR=%%__ENTRADA:~%__POSIÇÃO%,1%%
@IF NOT DEFINED __AUXILIAR (
  @SET /A __POSIÇÃO-=2
  @SET __RETORNO=!__POSIÇÃO!
  @SET __ENTRADA=
  @SET __POSIÇÃO=
  @SET __AUXILIAR=
  @GOTO :EOF
)
@SET /A __POSIÇÃO+=1
@GOTO PRÓXIMOCARACTERE

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: Término da rotina
::
:FIM
@ECHO.
@MODE CON CP SELECT=850 >NUL 2>NUL
@SETLOCAL










Em 18/04/2012, Tamires Werneck<tamires.info@gmail.com> escreveu:
Boa noite,

montei uma base para preencher um documento de texto, no qual um dos
campos, eu precisava alimentar com o nomes de vários funcionários. Até ai,
tudo bem! Quando mandei imprimir esse documento, marquei as seguintes
opções:
Registro -> Todos
Saída -> Arquivo -> Salvar como documentos individuais -> Formato do
Arquivo: PDF. Até ai, tudo bem também! Mas quando esse arquivo é gerado,
ele gera no nome do arquivo um '0' antes da extensão. Ex: FULANO DE
TAL0.PDF quando seria somente FULANO DE TAL.PDF

Desde já, agradeço quem puder me ajudar.

--
Att,

Tamires Werneck.

--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/



-- 
Você está recebendo e-mails da lista discussao@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para discussao+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  discussao+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/discussao/

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.