How can I save a watermark on PDF File and export to Desktop macOS Mojave
I have an app running in macOS Mojave and it works nicely. I can drag a pdf file onto a PDFView and can put a button to mark a watermark on the pdf file. I got the example code from apple WWDC written for iOS, and I translated it for macOS. My problem is how can I save this pdf including the watermark, to desktop for example?
My Code:
override func viewDidLoad() {
super.viewDidLoad()
pdfView?.acceptsDraggedFiles = true
}
func classForPage() -> AnyClass {
return WatermarkPage.self
}
@IBAction func WaterMark(_ sender: NSButton) {
if let document = PDFDocument(url: (pdfView?.document?.documentURL)!){
//Center document on gray background
pdfView?.autoScales = true
pdfView?.backgroundColor = NSColor.lightGray
// 1. Set delegate
document!.delegate = self
pdfView?.document = document
let filename: String = "ExportPDF.pdf"
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask,
true)[0];
let writePath = URL(fileURLWithPath: path).appendingPathComponent(filename).path
//pdfView?.document?.write(toFile: writePath)
document?.write(toFile: writePath)
print("Pfad: (path)")
}
}
class WatermarkPage: PDFPage {
// 3. Override PDFPage custom draw
/// - Tag: OverrideDraw
override func draw(with box: PDFDisplayBox, to context: CGContext) {
// Draw original content
super.draw(with: box, to: context)
// Draw rotated overlay string
context.saveGState()
let pageBounds = self.bounds(for: box)
context.translateBy(x: 0.0, y: pageBounds.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.rotate(by: CGFloat.pi / 5.0)
let string: NSString = "A P P R O V E D"
let attributes = [NSAttributedString.Key.foregroundColor: NSColor(calibratedRed: 0.8, green: 0.5, blue: 0.5, alpha: 0.5),NSAttributedString.Key.font: NSFont.boldSystemFont(ofSize: 64.0)]
string.draw(at: CGPoint(x: 300, y: 40), withAttributes: attributes)
context.restoreGState()
context.saveGState()
}
}
swift cocoa pdf
add a comment |
I have an app running in macOS Mojave and it works nicely. I can drag a pdf file onto a PDFView and can put a button to mark a watermark on the pdf file. I got the example code from apple WWDC written for iOS, and I translated it for macOS. My problem is how can I save this pdf including the watermark, to desktop for example?
My Code:
override func viewDidLoad() {
super.viewDidLoad()
pdfView?.acceptsDraggedFiles = true
}
func classForPage() -> AnyClass {
return WatermarkPage.self
}
@IBAction func WaterMark(_ sender: NSButton) {
if let document = PDFDocument(url: (pdfView?.document?.documentURL)!){
//Center document on gray background
pdfView?.autoScales = true
pdfView?.backgroundColor = NSColor.lightGray
// 1. Set delegate
document!.delegate = self
pdfView?.document = document
let filename: String = "ExportPDF.pdf"
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask,
true)[0];
let writePath = URL(fileURLWithPath: path).appendingPathComponent(filename).path
//pdfView?.document?.write(toFile: writePath)
document?.write(toFile: writePath)
print("Pfad: (path)")
}
}
class WatermarkPage: PDFPage {
// 3. Override PDFPage custom draw
/// - Tag: OverrideDraw
override func draw(with box: PDFDisplayBox, to context: CGContext) {
// Draw original content
super.draw(with: box, to: context)
// Draw rotated overlay string
context.saveGState()
let pageBounds = self.bounds(for: box)
context.translateBy(x: 0.0, y: pageBounds.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.rotate(by: CGFloat.pi / 5.0)
let string: NSString = "A P P R O V E D"
let attributes = [NSAttributedString.Key.foregroundColor: NSColor(calibratedRed: 0.8, green: 0.5, blue: 0.5, alpha: 0.5),NSAttributedString.Key.font: NSFont.boldSystemFont(ofSize: 64.0)]
string.draw(at: CGPoint(x: 300, y: 40), withAttributes: attributes)
context.restoreGState()
context.saveGState()
}
}
swift cocoa pdf
add a comment |
I have an app running in macOS Mojave and it works nicely. I can drag a pdf file onto a PDFView and can put a button to mark a watermark on the pdf file. I got the example code from apple WWDC written for iOS, and I translated it for macOS. My problem is how can I save this pdf including the watermark, to desktop for example?
My Code:
override func viewDidLoad() {
super.viewDidLoad()
pdfView?.acceptsDraggedFiles = true
}
func classForPage() -> AnyClass {
return WatermarkPage.self
}
@IBAction func WaterMark(_ sender: NSButton) {
if let document = PDFDocument(url: (pdfView?.document?.documentURL)!){
//Center document on gray background
pdfView?.autoScales = true
pdfView?.backgroundColor = NSColor.lightGray
// 1. Set delegate
document!.delegate = self
pdfView?.document = document
let filename: String = "ExportPDF.pdf"
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask,
true)[0];
let writePath = URL(fileURLWithPath: path).appendingPathComponent(filename).path
//pdfView?.document?.write(toFile: writePath)
document?.write(toFile: writePath)
print("Pfad: (path)")
}
}
class WatermarkPage: PDFPage {
// 3. Override PDFPage custom draw
/// - Tag: OverrideDraw
override func draw(with box: PDFDisplayBox, to context: CGContext) {
// Draw original content
super.draw(with: box, to: context)
// Draw rotated overlay string
context.saveGState()
let pageBounds = self.bounds(for: box)
context.translateBy(x: 0.0, y: pageBounds.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.rotate(by: CGFloat.pi / 5.0)
let string: NSString = "A P P R O V E D"
let attributes = [NSAttributedString.Key.foregroundColor: NSColor(calibratedRed: 0.8, green: 0.5, blue: 0.5, alpha: 0.5),NSAttributedString.Key.font: NSFont.boldSystemFont(ofSize: 64.0)]
string.draw(at: CGPoint(x: 300, y: 40), withAttributes: attributes)
context.restoreGState()
context.saveGState()
}
}
swift cocoa pdf
I have an app running in macOS Mojave and it works nicely. I can drag a pdf file onto a PDFView and can put a button to mark a watermark on the pdf file. I got the example code from apple WWDC written for iOS, and I translated it for macOS. My problem is how can I save this pdf including the watermark, to desktop for example?
My Code:
override func viewDidLoad() {
super.viewDidLoad()
pdfView?.acceptsDraggedFiles = true
}
func classForPage() -> AnyClass {
return WatermarkPage.self
}
@IBAction func WaterMark(_ sender: NSButton) {
if let document = PDFDocument(url: (pdfView?.document?.documentURL)!){
//Center document on gray background
pdfView?.autoScales = true
pdfView?.backgroundColor = NSColor.lightGray
// 1. Set delegate
document!.delegate = self
pdfView?.document = document
let filename: String = "ExportPDF.pdf"
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory,.userDomainMask,
true)[0];
let writePath = URL(fileURLWithPath: path).appendingPathComponent(filename).path
//pdfView?.document?.write(toFile: writePath)
document?.write(toFile: writePath)
print("Pfad: (path)")
}
}
class WatermarkPage: PDFPage {
// 3. Override PDFPage custom draw
/// - Tag: OverrideDraw
override func draw(with box: PDFDisplayBox, to context: CGContext) {
// Draw original content
super.draw(with: box, to: context)
// Draw rotated overlay string
context.saveGState()
let pageBounds = self.bounds(for: box)
context.translateBy(x: 0.0, y: pageBounds.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.rotate(by: CGFloat.pi / 5.0)
let string: NSString = "A P P R O V E D"
let attributes = [NSAttributedString.Key.foregroundColor: NSColor(calibratedRed: 0.8, green: 0.5, blue: 0.5, alpha: 0.5),NSAttributedString.Key.font: NSFont.boldSystemFont(ofSize: 64.0)]
string.draw(at: CGPoint(x: 300, y: 40), withAttributes: attributes)
context.restoreGState()
context.saveGState()
}
}
swift cocoa pdf
swift cocoa pdf
edited Nov 21 '18 at 15:23
shim
4,04064679
4,04064679
asked Nov 21 '18 at 15:18
ebnerebner
62
62
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Guys sorry that was a total misunderstanding of mine. Total error of reason. I can watermark the document then I can just save it or print it and the watermark will be present. I do not need a separate save function. Ou man I make my head so good sometimes you sit on the hose. Thank you very much for your great help.
add a comment |
If you want to save it to the Desktop.
You have to change the path, where the file is written
for example standard Desktop /Users/username/Desktop/
let fileManager = FileManager.default
let homeURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let writePath = homeURL.path + "Desktop" + <Filename>
document?.write(toFile: writePath)
1. UseNSDesktopDirectory
instead ofNSHomeDirectory
. 2. Don't use paths, useURL
s andappendingPathComponent(_:)
.
– Willeke
Nov 21 '18 at 16:25
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53415176%2fhow-can-i-save-a-watermark-on-pdf-file-and-export-to-desktop-macos-mojave%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Guys sorry that was a total misunderstanding of mine. Total error of reason. I can watermark the document then I can just save it or print it and the watermark will be present. I do not need a separate save function. Ou man I make my head so good sometimes you sit on the hose. Thank you very much for your great help.
add a comment |
Guys sorry that was a total misunderstanding of mine. Total error of reason. I can watermark the document then I can just save it or print it and the watermark will be present. I do not need a separate save function. Ou man I make my head so good sometimes you sit on the hose. Thank you very much for your great help.
add a comment |
Guys sorry that was a total misunderstanding of mine. Total error of reason. I can watermark the document then I can just save it or print it and the watermark will be present. I do not need a separate save function. Ou man I make my head so good sometimes you sit on the hose. Thank you very much for your great help.
Guys sorry that was a total misunderstanding of mine. Total error of reason. I can watermark the document then I can just save it or print it and the watermark will be present. I do not need a separate save function. Ou man I make my head so good sometimes you sit on the hose. Thank you very much for your great help.
answered Dec 2 '18 at 16:40
ebnerebner
62
62
add a comment |
add a comment |
If you want to save it to the Desktop.
You have to change the path, where the file is written
for example standard Desktop /Users/username/Desktop/
let fileManager = FileManager.default
let homeURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let writePath = homeURL.path + "Desktop" + <Filename>
document?.write(toFile: writePath)
1. UseNSDesktopDirectory
instead ofNSHomeDirectory
. 2. Don't use paths, useURL
s andappendingPathComponent(_:)
.
– Willeke
Nov 21 '18 at 16:25
add a comment |
If you want to save it to the Desktop.
You have to change the path, where the file is written
for example standard Desktop /Users/username/Desktop/
let fileManager = FileManager.default
let homeURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let writePath = homeURL.path + "Desktop" + <Filename>
document?.write(toFile: writePath)
1. UseNSDesktopDirectory
instead ofNSHomeDirectory
. 2. Don't use paths, useURL
s andappendingPathComponent(_:)
.
– Willeke
Nov 21 '18 at 16:25
add a comment |
If you want to save it to the Desktop.
You have to change the path, where the file is written
for example standard Desktop /Users/username/Desktop/
let fileManager = FileManager.default
let homeURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let writePath = homeURL.path + "Desktop" + <Filename>
document?.write(toFile: writePath)
If you want to save it to the Desktop.
You have to change the path, where the file is written
for example standard Desktop /Users/username/Desktop/
let fileManager = FileManager.default
let homeURL = FileManager.default.urls(for: NSHomeDirectory, in: .userDomainMask).first! as NSURL
let writePath = homeURL.path + "Desktop" + <Filename>
document?.write(toFile: writePath)
answered Nov 21 '18 at 16:16
ivionivion
268136
268136
1. UseNSDesktopDirectory
instead ofNSHomeDirectory
. 2. Don't use paths, useURL
s andappendingPathComponent(_:)
.
– Willeke
Nov 21 '18 at 16:25
add a comment |
1. UseNSDesktopDirectory
instead ofNSHomeDirectory
. 2. Don't use paths, useURL
s andappendingPathComponent(_:)
.
– Willeke
Nov 21 '18 at 16:25
1. Use
NSDesktopDirectory
instead of NSHomeDirectory
. 2. Don't use paths, use URL
s and appendingPathComponent(_:)
.– Willeke
Nov 21 '18 at 16:25
1. Use
NSDesktopDirectory
instead of NSHomeDirectory
. 2. Don't use paths, use URL
s and appendingPathComponent(_:)
.– Willeke
Nov 21 '18 at 16:25
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53415176%2fhow-can-i-save-a-watermark-on-pdf-file-and-export-to-desktop-macos-mojave%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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