Имя: Пароль:
1C
1С v8
изменения текста pdf опен офис.
0 zladenuw
 
19.12.12
16:29
Меняю.
ТекущийЛист = Файл.DrawPages.getByIndex(0);
       ReplaceDescriptor     = ТекущийЛист.createReplaceDescriptor();
       ReplaceDescriptor.SearchString = "date";
       ReplaceDescriptor.ReplaceString = СокрЛП("тест");
       ТекущийЛист.replaceAll(ReplaceDescriptor);

Жаль что только опеном потом можно его открыть. но заменить текст дает. :)
1 Fragster
 
гуру
19.12.12
16:30
хвастаешься?
2 zladenuw
 
19.12.12
16:32
(1) да не. фигня в том. что нельзя обычным пдф открыть. ошибку пишет.
3 zladenuw
 
19.12.12
16:33
(1) может кто то делал.или знает как лечить
4 Fragster
 
гуру
19.12.12
17:12
(2) так пии, как сохраняешь. ибо если просто руками открыть - заменить - сохранить пдф - то все работает
5 Fragster
 
гуру
19.12.12
17:13
наверное ты его как одт сохраняешь, только с расширением пды
6 Fragster
 
гуру
19.12.12
17:13
пдф
7 zladenuw
 
19.12.12
17:34
нет.
Читаю пдф и его же сохраняю.
 sUrl = URLИзИмениФайла(мВыбФайл);
     Попытка
         Файл.storeAsURL(sUrl, MassivParametrovSave);
         Файл.Close(true);
         ЗапуститьПриложение(мВыбФайл);
    Исключение
         Сообщить("Такой файл уже открыт. закройте его!");
    КонецПопытки;
8 zladenuw
 
19.12.12
17:37
вот нашел.
Sub DoExport
' now export it
       oExpOptions = Array(_
                      MkPropVal( "FilterName", "calc_pdf_Export" ),_
                      MkPropVal( "FilterData",  oExpFilterOptions )_
                      )

      oDoc = ThisComponent
       aURL = oDoc.getLocation()
      aURL = aURL + "-macro.pdf" ' add a pdf file type
' Save the document in the new destination format.
       oDoc.storeToURL( aURL, oExpOptions )
end sub
9 zladenuw
 
19.12.12
17:45
только вот что от не догоню. как передать эти параметры
Function MkPropVal( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue
      Dim oPropertyValue As New com.sun.star.beans.PropertyValue
      If Not IsMissing( cName ) Then
              oPropertyValue.Name = cName
      EndIf
      If Not IsMissing( uValue ) Then
              oPropertyValue.Value = uValue
      EndIf
      MkPropVal() = oPropertyValue
End Function

Sub DoExport
' now export it
       oExpOptions = Array(_
                      MkPropVal( "FilterName", "calc_pdf_Export" ),_
                      MkPropVal( "FilterData",  oExpFilterOptions )_
                      )

      oDoc = ThisComponent
       aURL = oDoc.getLocation()
      aURL = aURL + "-macro.pdf" ' add a pdf file type
' Save the document in the new destination format.
       oDoc.storeToURL( aURL, oExpOptions )
end sub
10 zladenuw
 
19.12.12
17:46
именно что сюда нужно MkPropVal( "FilterData",  oExpFilterOptions )
11 zladenuw
 
20.12.12
12:08
Делаю вот так. но получаю ошибку.
   Файл.storeAsURL(sUrl, MassivParametrovPDF);

ункция ДобавитьСвойство(ServManag,пИмя,пЗначение)
   Свойства = ServManag.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
   Свойства.Name = пИмя;
   Свойства.Value = пЗначение;
   
   Возврат Свойства;
КонецФункции // ()



//Подключение к серверу автоматизации OpenOffice
Попытка
   ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
   
   //MassivParametrov  открытие
   MassivParametrov = Новый COMSafeArray("VT_VARIANT", 2);
   MassivParametrov.SetValue(0, ДобавитьСвойство(ServiceManager,"AsTemplate",Истина));
   MassivParametrov.SetValue(1, ДобавитьСвойство(ServiceManager,"Hidden",Истина));
   
   //MassivParametrovSave  сохранения
   MassivParametrovSave = Новый COMSafeArray("VT_VARIANT", 1);
   MassivParametrovSave.SetValue(0,  ДобавитьСвойство(ServiceManager,"Overwrite",Истина));
   
   //MassivParametrovSave  PDF    
   MassivParametrovPDF = Новый COMSafeArray("VT_VARIANT", 2);
   MassivParametrovPDF.SetValue(0, ДобавитьСвойство(ServiceManager,"FilterName","calc_pdf_Export"));
   
   ПодМассивПараметровПДФ = Новый COMSafeArray("VT_VARIANT", 4);
   ПодМассивПараметровПДФ.SetValue(0, ДобавитьСвойство(ServiceManager,"InitialView",0));
   ПодМассивПараметровПДФ.SetValue(1, ДобавитьСвойство(ServiceManager,"PageLayout",0));
   ПодМассивПараметровПДФ.SetValue(2, ДобавитьСвойство(ServiceManager,"UseTaggedPDF",False));
   ПодМассивПараметровПДФ.SetValue(3, ДобавитьСвойство(ServiceManager,"EncryptFile",True));
   //ПодМассивПараметровПДФ.SetValue(4, ДобавитьСвойство(ServiceManager,"DocumentOpenPassword","open"));
   //ПодМассивПараметровПДФ.SetValue(5, ДобавитьСвойство(ServiceManager,"RestrictPermissions", True ));
   //ПодМассивПараметровПДФ.SetValue(6, ДобавитьСвойство(ServiceManager,"PermissionPassword", "permission"));
   //ПодМассивПараметровПДФ.SetValue(7, ДобавитьСвойство(ServiceManager,"Printing",24));
   //ПодМассивПараметровПДФ.SetValue(8, ДобавитьСвойство(ServiceManager,"Changes",4));
   //ПодМассивПараметровПДФ.SetValue(9, ДобавитьСвойство(ServiceManager,"EnableCopyingOfContent",True));
   //ПодМассивПараметровПДФ.SetValue(10, ДобавитьСвойство(ServiceManager,"EnableTextAccessForAccessibilityTools",True));
   MassivParametrovPDF.SetValue(1,ДобавитьСвойство(ServiceManager,"FilterData",ПодМассивПараметровПДФ));
   
   //MassivParametrovPrint Print
   MassivParametrovPrint = Новый COMSafeArray("VT_VARIANT", 1);
   MassivParametrovPrint.SetValue(0,  ДобавитьСвойство(ServiceManager,"copycount",1));    
   
   
   Соединение = ServiceManager.createInstance("com.sun.star.frame.Desktop");    
Исключение
   Сообщить(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice не установлена на данном компьютере!");        
КонецПопытки;


{Обработка.МодульOpenOffice.МодульОбъекта(246)}: Ошибка при вызове метода контекста (storeAsURL): Произошла исключительная ситуация ([automation bridge] ): com.sun.star.task.ErrorCodeIOException:
12 zladenuw
 
20.12.12
12:26
путь для сохранения такой
file://localhost///1CSQL2/storage/1С/Total/Печать/SUZUKI_ПРЕДПРОДАЖКА.Pdf.

Если же просто сохраняют. то не могу открыть обычным пдф.
кто то знает как разрешить проблему ?
13 zladenuw
 
20.12.12
12:38
все банально просто
     Файл.storeToURL(sUrl, MassivParametrovPDF);
14 cw014
 
20.12.12
13:00
Забавно человек сам с собой пообщался
15 zladenuw
 
20.12.12
13:09
(14) так это мой личный блог :)