[ dakiyu @ 13.03.2009. 04:10 ] @
[ dakiyu @ 13.03.2009. 04:10 ] @
[ Jpeca @ 13.03.2009. 07:37 ] @
1/ Možeš da štampaš stranicu po stranicu u pdf.
2/ Možeš da napraviš makro koji će tekuću stranicu da snimi pod nekim imenom npr. NazivDocumenta-brojstrane. Code: Option Explicit Sub CopyPageToNewDocumentAndSave() ' Snima tekucu stranu u poseban fajl ' Naziv novog fajla formira se na osnovu aktivnog dokumenta ' tako sto se dodaje -Strana-brojstrane ' P.Jovanovic za elitesecurity.org ' Dim NewName As String ' Selektuje tekucu stranu ActiveDocument.Bookmarks("\page").Range.Select ' Formira ime za novi dokument NewName = Left(ActiveDocument.Name, InStrRev(ActiveDocument.Name, ".") - 1) & "-Strana-" & Selection.Information(wdActiveEndPageNumber) ' Prebacuje u novi dokument selektovani deo Documents.Add.Content.FormattedText = Selection.Range ' Snima i zatvara novi dokument ActiveDocument.SaveAs NewName ActiveDocument.Close End Sub Sada jos mozeš dodati kod koji u petlji poziva ovu proceduru od 1 stranice do kraja. [ darkos1 @ 14.08.2018. 14:57 ] @
Tražeći kako da rešim svoj problem naišao sam na sličnu temu pa bi bih zamolio za odgovor.
Kako izmijeniti dio koda da mi umjesto u word snima u pdf formatu. Takođe me interesuje kako da snimi sve strane a ne samo selektovanu (koliko stranica toliko dokumenata u pdf) [ bokinet @ 14.08.2018. 17:32 ] @
Evo koda koji vrsi export u PDF aktivan dokument sa opcijom snimanja svih strana ili sa opcijom od strane do strane.
Moze jos malo da se doradi ali sustina i glavna stvar je u navedenom kodu. Takodje bitna je i koja je verzija MS Word zbog f-je export u PDF format. Ovo je testirano i probano sa MS Word 2010, 2013 i 2016 Code: ' Publish current document to PDF - Input arguments: filename as full file location, PageFrom/PageTo page range; ' Tested with MS Word versions: 2010, 2013, 2016 Public Sub PublishPDF(ByVal Filename As String, Optional ByVal PageFrom As Long = 1, Optional ByVal PageTo As Long = 0) Dim lRange As Word.WdExportRange ' If PageTo isn't set or left 0 then If PageFrom = 1 And PageTo < 1 Then ' Set range to export all pages lRange = wdExportAllDocument ElseIf PageFrom <= PageTo Then If PageFrom = 0 Then ' Set range to export current page lRange = wdExportCurrentPage Else ' Repaginate current document ActiveDocument.Repaginate ' Set range to export from page to page lRange = wdExportFromTo End If End If ' Try to export document to PDF ActiveDocument.ExportAsFixedFormat OutputFileName:= _ Filename, _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=lRange, From:=PageFrom, To:=PageTo, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False End Sub ' Test Example - How can be used Public Sub TestPublish() ' Export to PDF all pages of current document PublishPDF "C:\Users\VBAUser\Desktop\test_allpages.pdf" ' Export to PDF from page to page current document PublishPDF "C:\Users\VBAUser\Desktop\test_frompagetopage.pdf", 5, 10 ' Export to PDF current page of current document PublishPDF "C:\Users\VBAUser\Desktop\test_currentpage.pdf", 0 End Sub [ darkos1 @ 15.08.2018. 14:05 ] @
Zahvaljujem na odgovoru, ali mi prijavljuje grešku.
Da li se kod ubacuje u modul ili na dokument. Da li radi u wordu 2007, [ bokinet @ 15.08.2018. 16:06 ] @
Dati kod radi za verzije MS Word 2010 i novije kao sto je navedeno u pocetnom opisu.
Postoji mogucnost da se koristi u MS Word 2007 ali mora da se instalira dodatak (ADD-IN) od Microsoft-a koji je besplatan za MS Office 2007. Ja sam brzinski odradio podrsku i za MS Word 2007 u dole navedenom kodu i napravio obe varijante, za MS Word 2007 i za novije verzije od MS Word 2007. Pomenuti dodatak za MS Office 2007 (znaci i MS Word 2007) mozete preuzeti sa nevedenog linka. U pitanju je instalacioni file koji je manji od 1MB. Isti, sam postavio i na G-Drive za download. Microsoft Save as PDF or XPS Add-in for Microsoft Office 2007 Microsoft Save as PDF or XPS Add-in for Microsoft Office 2007 on personal G-Drive U prilogu se nalaze dva screenshot-a i to prvi prikazuje okvirno kako bi trebalo da izgleda SAVE AS dialog nakon instalcije dodatka, dok drugi predstavlja preporuceni deo gde bi trebalo ubaciti kod, pre svega PublishPDF(). Pored istih je i .bas file sa kodom koji je dole naveden. Kod koji se moze postaviti po zelji u modul ili direktno u Normal template. Code: ' Publish current document to PDF - Input arguments: filename as full file location, PageFrom/PageTo page range; If PageTo isn't set or is less 1 then will try to get total pages of current document ' Tested with MS Word versions: 2010, 2013, 2016 ' Added suport for version 2007 using add-in from Microsoft -> Microsoft Save as PDF or XPS Add-in for Microsoft Office 2007 ' Download url: http://r.office.microsoft.com/r/rlidMSAddinPDFXPS Public Sub PublishPDF(ByVal Filename As String, Optional ByVal PageFrom As Long = 1, Optional ByVal PageTo As Long = 0) Dim lRange As Word.WdExportRange On Error GoTo ErrHandler ' If PageTo isn't set or left 0 then If PageFrom = 1 And PageTo < 1 Then ' Set range to export all pages lRange = wdExportAllDocument ElseIf PageFrom <= PageTo Then If PageFrom = 0 Then ' Set range to export current page lRange = wdExportCurrentPage Else ' Repaginate current document ActiveDocument.Repaginate ' Set range to export from page to page lRange = wdExportFromTo End If End If Dim lVer As Long ' Get version of MS Word lVer = Val(Application.Version) ' If version is 2010 and newer then If lVer > 12 Then ' Try to export document to PDF ActiveDocument.ExportAsFixedFormat OutputFileName:= _ Filename, _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=lRange, From:=PageFrom, To:=PageTo, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False ' If version is 2007 then ElseIf lVer = 12 Then ' Add-in must be installed first ' Try to export document to PDF ActiveDocument.ExportAsFixedFormat OutputFileName:= _ Filename, ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _ lRange, From:=PageFrom, To:=PageTo, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False ' Everything else Else ' Show message MsgBox "No support for this version of MS Word." End If Exit Sub ErrHandler: ' Show message MsgBox "Error in exporting selected document to PDF file." & vbCrLf & vbCrLf & "Error: " & Err.Number & " - " & Err.Description, vbExclamation, "Publish PDF" End Sub ' Test Example - How can be used Public Sub TestPublish() ' Export to PDF all pages of current document PublishPDF "C:\Users\ieuser\Desktop\test_allpages.pdf" ' Export to PDF from page to page current document PublishPDF "C:\Users\ieuser\Desktop\test_frompagetopage.pdf", 5, 10 ' Export to PDF current page of current document PublishPDF "C:\Users\ieuser\Desktop\test_currentpage.pdf", 0 End Sub p.s. Namerno je razdvojeno sto se tice verzija jer gledano iz koda nema razlike ali zbog dodatka je tako namerno odradjen cisto da bi se videlo da mora da ide dodatak. To moze da se izbaci i preradi... [ darkos1 @ 28.01.2019. 15:10 ] @
Makro pokrećem pomoću komandnog dugmeta, međutim na dokumentu koji izvezem u PDF mi bude komandni buton.
Kako da ga sakrijem prije snimanja u PDF odnosno vratim poslije snimanja (sakrijem odnosno otkrijem). [ bokinet @ 28.01.2019. 15:46 ] @
Ima vise nacina evo dva:
Nacin 1. Da se pozivanje vrsi preko toolbar button koji bi bio sastavni deo MS Word (Customize the Ribbon... pa se doda i podesi ili nad podsejecim tabom i ribbon tabom ili napravi totalno novi - stvar licne organizacije i potrebe) Nacin 2. 1. U dokument dodati textbox frame (INSERT -> TextBox) 2. U tako dodati textbox frame ubaciti command button (dugme) koje se koristi za pozivanje procesa 3. U VBA kodu deo koji poziva dugme dodati kod koji neposredno pre pozivanja postojeceg procesa postavlja textbox u nevidiljivo i nakon celog procesa na kraju kod ponovo vraca u vidljivo; U slucaju da se koristi jos neki shape (posto se tako tretira TextBox) naci koji je ustvari TextBox enumeraciji i proverom osobina istih. Ubaciti takodje error handler da u slucaju ako dodje do greske se izvrsi i resetovanja vidljivosti tj. vrati visible na true za textbox u dokumentu u kome se nalazi commandbutton. Primer na osnovu vec datog koda gore (prethodni postovi) bi bio: Code: Private Sub CommandButton1_Click() ActiveDocument.Shapes(1).Visible = msoFalse DoEvents PublishPDF "C:\Users\IEUser\Desktop\test_allpages.pdf" DoEvents ActiveDocument.Shapes(1).Visible = msoTrue DoEvents End Sub Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|