C# iTextsharp Replace Page of a multi-page PDF












4














Say, I now have a 5-page PDF called 'a.pdf' which page 2 and 4 are empty. And another 2-page PDF called 'b.pdf'. Now what I want is to copy the the first page of 'b.pdf' to page2 of 'a.pdf' and second page of 'b.pdf' to page 4 of 'a.pdf'.



I found it's quite hard to find any examples, what I found is someone provided here,
http://itextsharp.10939.n7.nabble.com/Replace-Pages-with-ItextSharp-td2956.html
Called 'PdfStamper.ReplacePage()', I guess this is what I'm looking for, but I did a simple demo but didn't work out. Can someone have a check for me?



string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA,new MemoryStream());

cc.ReplacePage(readerB, 1, 2);
cc.ReplacePage(readerB, 2, 4);
cc.Close();


Thanks in advance.



=================================================================================
Thanks to Jose's suggestion. The code works now. I'm now providing a simple sample here for others to reference.



public void MyFunction()
{
string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA, new FileStream(Server.MapPath("~/11/result.pdf"), FileMode.Append));

cc.ReplacePage(readerB, 1, 2);
cc.Close();
}









share|improve this question
























  • What happens, exactly? Do you get an error or does it simply not work?
    – jose
    Oct 7 '13 at 2:36










  • No error pops, simply not working, files are not changed. I guess you are right, but could you provide some sample code? I just couldn't find any useful api or sample code over the internet
    – JunglerSens
    Oct 7 '13 at 3:27










  • I've edited my answer, that should do the trick
    – jose
    Oct 7 '13 at 3:35
















4














Say, I now have a 5-page PDF called 'a.pdf' which page 2 and 4 are empty. And another 2-page PDF called 'b.pdf'. Now what I want is to copy the the first page of 'b.pdf' to page2 of 'a.pdf' and second page of 'b.pdf' to page 4 of 'a.pdf'.



I found it's quite hard to find any examples, what I found is someone provided here,
http://itextsharp.10939.n7.nabble.com/Replace-Pages-with-ItextSharp-td2956.html
Called 'PdfStamper.ReplacePage()', I guess this is what I'm looking for, but I did a simple demo but didn't work out. Can someone have a check for me?



string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA,new MemoryStream());

cc.ReplacePage(readerB, 1, 2);
cc.ReplacePage(readerB, 2, 4);
cc.Close();


Thanks in advance.



=================================================================================
Thanks to Jose's suggestion. The code works now. I'm now providing a simple sample here for others to reference.



public void MyFunction()
{
string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA, new FileStream(Server.MapPath("~/11/result.pdf"), FileMode.Append));

cc.ReplacePage(readerB, 1, 2);
cc.Close();
}









share|improve this question
























  • What happens, exactly? Do you get an error or does it simply not work?
    – jose
    Oct 7 '13 at 2:36










  • No error pops, simply not working, files are not changed. I guess you are right, but could you provide some sample code? I just couldn't find any useful api or sample code over the internet
    – JunglerSens
    Oct 7 '13 at 3:27










  • I've edited my answer, that should do the trick
    – jose
    Oct 7 '13 at 3:35














4












4








4


1





Say, I now have a 5-page PDF called 'a.pdf' which page 2 and 4 are empty. And another 2-page PDF called 'b.pdf'. Now what I want is to copy the the first page of 'b.pdf' to page2 of 'a.pdf' and second page of 'b.pdf' to page 4 of 'a.pdf'.



I found it's quite hard to find any examples, what I found is someone provided here,
http://itextsharp.10939.n7.nabble.com/Replace-Pages-with-ItextSharp-td2956.html
Called 'PdfStamper.ReplacePage()', I guess this is what I'm looking for, but I did a simple demo but didn't work out. Can someone have a check for me?



string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA,new MemoryStream());

cc.ReplacePage(readerB, 1, 2);
cc.ReplacePage(readerB, 2, 4);
cc.Close();


Thanks in advance.



=================================================================================
Thanks to Jose's suggestion. The code works now. I'm now providing a simple sample here for others to reference.



public void MyFunction()
{
string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA, new FileStream(Server.MapPath("~/11/result.pdf"), FileMode.Append));

cc.ReplacePage(readerB, 1, 2);
cc.Close();
}









share|improve this question















Say, I now have a 5-page PDF called 'a.pdf' which page 2 and 4 are empty. And another 2-page PDF called 'b.pdf'. Now what I want is to copy the the first page of 'b.pdf' to page2 of 'a.pdf' and second page of 'b.pdf' to page 4 of 'a.pdf'.



I found it's quite hard to find any examples, what I found is someone provided here,
http://itextsharp.10939.n7.nabble.com/Replace-Pages-with-ItextSharp-td2956.html
Called 'PdfStamper.ReplacePage()', I guess this is what I'm looking for, but I did a simple demo but didn't work out. Can someone have a check for me?



string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA,new MemoryStream());

cc.ReplacePage(readerB, 1, 2);
cc.ReplacePage(readerB, 2, 4);
cc.Close();


Thanks in advance.



=================================================================================
Thanks to Jose's suggestion. The code works now. I'm now providing a simple sample here for others to reference.



public void MyFunction()
{
string _outMergeFile = Server.MapPath("~/11/a.pdf");

string file2 = Server.MapPath("~/11/b.pdf");
PdfReader readerA = new PdfReader(_outMergeFile);
PdfReader readerB = new PdfReader(file2);

PdfStamper cc = new PdfStamper(readerA, new FileStream(Server.MapPath("~/11/result.pdf"), FileMode.Append));

cc.ReplacePage(readerB, 1, 2);
cc.Close();
}






c# pdf replace itext






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 6:19









Community

11




11










asked Oct 7 '13 at 0:22









JunglerSens

8613




8613












  • What happens, exactly? Do you get an error or does it simply not work?
    – jose
    Oct 7 '13 at 2:36










  • No error pops, simply not working, files are not changed. I guess you are right, but could you provide some sample code? I just couldn't find any useful api or sample code over the internet
    – JunglerSens
    Oct 7 '13 at 3:27










  • I've edited my answer, that should do the trick
    – jose
    Oct 7 '13 at 3:35


















  • What happens, exactly? Do you get an error or does it simply not work?
    – jose
    Oct 7 '13 at 2:36










  • No error pops, simply not working, files are not changed. I guess you are right, but could you provide some sample code? I just couldn't find any useful api or sample code over the internet
    – JunglerSens
    Oct 7 '13 at 3:27










  • I've edited my answer, that should do the trick
    – jose
    Oct 7 '13 at 3:35
















What happens, exactly? Do you get an error or does it simply not work?
– jose
Oct 7 '13 at 2:36




What happens, exactly? Do you get an error or does it simply not work?
– jose
Oct 7 '13 at 2:36












No error pops, simply not working, files are not changed. I guess you are right, but could you provide some sample code? I just couldn't find any useful api or sample code over the internet
– JunglerSens
Oct 7 '13 at 3:27




No error pops, simply not working, files are not changed. I guess you are right, but could you provide some sample code? I just couldn't find any useful api or sample code over the internet
– JunglerSens
Oct 7 '13 at 3:27












I've edited my answer, that should do the trick
– jose
Oct 7 '13 at 3:35




I've edited my answer, that should do the trick
– jose
Oct 7 '13 at 3:35












1 Answer
1






active

oldest

votes


















3














OK, I think I've found your problem. cc is created in memory, and I don't see any code to save the actual changes to the file before you close it, so the alterations made to the in-memory file are lost. One option is to create it with a new FileStream () instead of a memory stream






share|improve this answer























  • Thanks a lot Jose, it works for me. I also provided the code ;)
    – JunglerSens
    Oct 7 '13 at 4:39











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f19215502%2fc-sharp-itextsharp-replace-page-of-a-multi-page-pdf%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














OK, I think I've found your problem. cc is created in memory, and I don't see any code to save the actual changes to the file before you close it, so the alterations made to the in-memory file are lost. One option is to create it with a new FileStream () instead of a memory stream






share|improve this answer























  • Thanks a lot Jose, it works for me. I also provided the code ;)
    – JunglerSens
    Oct 7 '13 at 4:39
















3














OK, I think I've found your problem. cc is created in memory, and I don't see any code to save the actual changes to the file before you close it, so the alterations made to the in-memory file are lost. One option is to create it with a new FileStream () instead of a memory stream






share|improve this answer























  • Thanks a lot Jose, it works for me. I also provided the code ;)
    – JunglerSens
    Oct 7 '13 at 4:39














3












3








3






OK, I think I've found your problem. cc is created in memory, and I don't see any code to save the actual changes to the file before you close it, so the alterations made to the in-memory file are lost. One option is to create it with a new FileStream () instead of a memory stream






share|improve this answer














OK, I think I've found your problem. cc is created in memory, and I don't see any code to save the actual changes to the file before you close it, so the alterations made to the in-memory file are lost. One option is to create it with a new FileStream () instead of a memory stream







share|improve this answer














share|improve this answer



share|improve this answer








edited Oct 7 '13 at 3:34

























answered Oct 7 '13 at 2:41









jose

542519




542519












  • Thanks a lot Jose, it works for me. I also provided the code ;)
    – JunglerSens
    Oct 7 '13 at 4:39


















  • Thanks a lot Jose, it works for me. I also provided the code ;)
    – JunglerSens
    Oct 7 '13 at 4:39
















Thanks a lot Jose, it works for me. I also provided the code ;)
– JunglerSens
Oct 7 '13 at 4:39




Thanks a lot Jose, it works for me. I also provided the code ;)
– JunglerSens
Oct 7 '13 at 4:39


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f19215502%2fc-sharp-itextsharp-replace-page-of-a-multi-page-pdf%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Xamarin.iOS Cant Deploy on Iphone

Glorious Revolution

Dulmage-Mendelsohn matrix decomposition in Python