मैं बहुत सारे पीडीएफ को मर्ज करने की कोशिश कर रहा हूं और प्रत्येक पीडीएफ के लिए मैं एक बुकमार्क (पीडीएफ का नाम) जोड़ना चाहता हूं, मुझे पीडीएफ के विलय की अलग तकनीकें मिलीं लेकिन उनमें से कोई भी केवल जोड़ नहीं सकता बुकमार्क सामने उदाहरण के लिए। itextsharp जोड़ एक अध्याय है, फिर अध्याय के लिए बुकमार्क, मैं पीडीएफ को बदलना नहीं चाहता।बुकमार्क के साथ पीडीएफ फाइलों को विलय करना
उत्तर
itextsharp का उपयोग करके आप इसे कर सकते हैं। मैं निम्न विधि द्वारा यह कर ...
MergePdfFiles(string outputPdf, string[] sourcePdfs)
{
PdfReader reader = null;
Document document = new Document();
PdfImportedPage page = null;
PdfCopy pdfCpy = null;
int n = 0;
int totalPages = 0;
int page_offset = 0;
List<Dictionary<string, object>> bookmarks = new List<Dictionary<string, object>>();
IList<Dictionary<string, object>> tempBookmarks;
for (int i = 0; i <= sourcePdfs.GetUpperBound(0); i++)
{
reader = new PdfReader(sourcePdfs[i]);
reader.ConsolidateNamedDestinations();
n = reader.NumberOfPages;
tempBookmarks = SimpleBookmark.GetBookmark(reader);
if (i == 0)
{
document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1));
pdfCpy = new PdfCopy(document, new FileStream(outputPdf, FileMode.Create));
document.Open();
SimpleBookmark.ShiftPageNumbers(tempBookmarks, page_offset, null);
page_offset += n;
if (tempBookmarks != null)
bookmarks.AddRange(tempBookmarks);
// MessageBox.Show(n.ToString());
totalPages = n;
}
else
{
SimpleBookmark.ShiftPageNumbers(tempBookmarks, page_offset, null);
if (tempBookmarks != null)
bookmarks.AddRange(tempBookmarks);
page_offset += n;
totalPages += n;
}
for (int j = 1; j <= n; j++)
{
page = pdfCpy.GetImportedPage(reader, j);
pdfCpy.AddPage(page);
}
reader.Close();
}
pdfCpy.Outlines = bookmarks;
document.Close();
}
इस कोड को चलाएं और पीडीएफ विलय करें लेकिन इसमें बुकमार्क नहीं जोड़े गए हैं। आरंभिक पीडीएफ फ़ाइलों को अंतिम पीडीएफ में दिखाने के लिए बुकमार्क होना चाहिए। – Moji
बस इस कोड के लिए धन्यवाद कहना है! मैं पिछले कुछ दिनों से वेब सर्फ कर रहा हूं जब तक कि मैं अभी इस पर ठोकर नहीं लगाता। पुन: धन्यवाद! – calcazar
ठीक है, खोज के कुछ समय बाद मैं कोड के इस टुकड़े पर ठोकर खाई, पूरी तरह से काम करता है! – Gelootn
कार्य के लिए Docotic.Pdf library आज़माएं।
यहाँ एक नमूना कोड करता है कि आप क्या वर्णित है:
public static void combineDocumentsWithBookmarks()
{
string[] names = new string[] { "first.pdf", "second.pdf", "third.pdf" };
using (PdfDocument pdf = new PdfDocument())
{
int targetPageIndex = 0;
for (int i = 0; i < names.Length; i++)
{
string currentName = names[i];
if (i == 0)
pdf.Open(currentName);
else
pdf.Append(currentName);
pdf.OutlineRoot.AddChild(currentName, targetPageIndex);
targetPageIndex = pdf.PageCount;
}
// setting PageMode will cause PDF viewer to display
// bookmarks pane when document is open
pdf.PageMode = PdfPageMode.UseOutlines;
pdf.Save("output.pdf");
}
}
नमूना एक पीडीएफ में विभिन्न दस्तावेजों को जोड़ती है और बुकमार्क पैदा करता है। प्रत्येक बुकमार्क मूल दस्तावेज़ के पहले पृष्ठ पर इंगित करता है।
अस्वीकरण: मैं उस कंपनी के लिए काम करता हूं जो डॉकॉटिक.पीडीएफ लाइब्रेरी विकसित करता है।
public string MergeFiles(string outputPath)
{
if (string.IsNullOrEmpty(outputPath))
throw new NullReferenceException("Path for output document is null or empty.");
using (Document outputDocument = new Document())
{
using (PdfCopy pdf = new PdfCopy(outputDocument, new FileStream(outputPath, FileMode.Create)))
{
outputDocument.Open();
// All bookmarks for output document
List<Dictionary<string, object>> bookmarks = new List<Dictionary<string, object>>();
// Bookmarks of the current document
IList<Dictionary<string, object>> tempBookmarks;
int pageOffset = 0;
// Merge documents and add bookmarks
foreach (string file in Files)
{
using (PdfReader reader = new PdfReader(file))
{
reader.ConsolidateNamedDestinations();
// Get bookmarks of current document
tempBookmarks = SimpleBookmark.GetBookmark(reader);
SimpleBookmark.ShiftPageNumbers(tempBookmarks, pageOffset, null);
pageOffset += reader.NumberOfPages;
if(tempBookmarks != null)
// Add bookmarks of current document to all bookmarks
bookmarks.AddRange(tempBookmarks);
// Add every page of document to output document
for (int i = 1; i <= reader.NumberOfPages; i++)
pdf.AddPage(pdf.GetImportedPage(reader, i));
}
}
// Add all bookmarks to output document
pdf.Outlines = bookmarks;
}
}
return outputPath;
}
मैं एक foreach पाश का उपयोग कर pdfs पर जाने के लिए और बयानों का उपयोग करके अनुकूलित मोहम्मद Kamruzzaman Sarker के जवाब। इस तरह यह मेरे लिए क्लीनर दिखता है लेकिन सभी क्रेडिट उसके पास जाते हैं।
- 1. कोको में पीडीएफ फाइलों को विलय करना
- 2. सीएसएस फाइलों को विलय करना
- 3. कई पीडीएफ फाइलों को एक में कैसे विलय करें?
- 4. मैं पर्ल के साथ पीडीएफ फाइलों को कैसे विलय कर सकता हूं?
- 5. पीडीएफ फाइलों के साथ पीडीएफ फाइलों को सम्मिलित करें रिक्त पृष्ठ
- 6. मैं व्यक्तिगत पीडीएफ फाइलों को डाउनलोड करने पर एक पीडीएफ में कैसे विलय कर सकता हूं?
- 7. पीडीएफ फाइलों को मर्ज करें
- 8. नई लाइन के बिना बिल्ली के साथ दो फाइलों को विलय करना
- 9. एक पीडीएफ फ़ाइल में पीएनजी छवियों को विलय करना
- 10. PythonMagick मेरी पीडीएफ फाइलों
- 11. हडोप मानचित्र में पीडीएफ फाइलों को पार्स करना
- 12. पीडीएफ फाइलों का उत्पादन, गोलाकार कोनों के साथ बहुभुज खींचें
- 13. संरक्षित पीडीएफ फाइलों को अनलॉक करें
- 14. आईओएस पर पीडीएफ फाइलों को मर्ज करें
- 15. पीडीएफ फाइलों के लिए फेविकॉन प्रदर्शित करें
- 16. पीडीएफ फाइलों से खिताब निकालना?
- 17. देव शाखा को केवल एक लॉग संदेश के साथ विलय करने के लिए विलय करना
- 18. दो छवियों को विलय करना
- 19. गणित प्रतीकों के साथ एडोब रीडर पीडीएफ को एनोटेट करना
- 20. टीएफएस विलय किसी भी बदलाव के बिना कुछ फाइलों को विलय करता रहता है
- 21. Mercurial में, क्या मैं केवल दो फाइलों के बीच कुछ फाइलों को विलय कर सकता हूं?
- 22. पीडीएफ फाइलों को एन्क्रिप्ट/डिक्रिप्ट करने के लिए जावा एपीआई
- 23. का मेल पीडीएफ: सुधारा पेज नंबर के साथ मूल बुकमार्क का उपयोग
- 24. पीडीएफ के शीर्ष पर मेल विलय कैसे करें?
- 25. सीएसएस फाइलों को साफ करना
- 26. मैं एकाधिक पीडीबी फाइलों को कैसे विलय करूं?
- 27. "गिट मेरेटूल" के साथ विलय
- 28. .NET में स्मार्टकार्ड के साथ पीडीएफ फाइलों को डिजिटल रूप से कैसे हस्ताक्षर करें?
- 29. LINQ के साथ इंटरलीव विलय?
- 30. बुकमार्क से सेलेनियम परीक्षण लॉन्च करना?
शायद आपको अलग-अलग पृष्ठों को निकालने और उन्हें एक फ़ाइल में फिर से इकट्ठा करने की आवश्यकता है। इस तरह आप बुकमार्क – gyurisc
के साथ प्रत्येक पीडीएफ के पहले पृष्ठ को चिह्नित कर सकते हैं मुझे नहीं पता कि एक सरल बुकमार्क कैसे जोड़ें – XandrUu