Is There any way to disable text copy in adobe view sdk

New Here ,
Sep 13, 2020 Sep 13, 2020

Copy link to clipboard

Copied

Is There any way to disable text copy in adobe view sdk, I have a website in which i provide university study materail to students but the problem is coming that many other website copy the content of my uploaded notes and upload on there website so is there any way by which i can disable copying text option so my notes content remain safe. please tell if there is a way.

Views

224

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct Answer

Adobe Employee , Sep 17, 2020 Sep 17, 2020
Hi Himanshu,  Although I am not able to see any enableTextSelection API invocation. You can write this API right after your page adjust. // Go to the page. Page numbers are 1 based. apis.gotoLocation(parseInt(page)); apis.enableTextSelection(false);   Let me know if it works for you.

Likes

Translate

Translate
Adobe Employee ,
Sep 13, 2020 Sep 13, 2020

Copy link to clipboard

Copied

Hi Himanshu,
Thanks for choosing PDF Embed API. For your use case, you can disable the text selection using enableTextSelection API mentioned under Viewer API section in our public documentation https://www.adobe.io/apis/documentcloud/dcsdk/docs.html?view=view 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Sep 14, 2020 Sep 14, 2020

Copy link to clipboard

Copied

There are two methods. You can do it via code in the Embed API configuration as is described already in this thread however, that will only prevent text selection while the file is being viewed. If you allow the file to be downloaded, other PDF viewers can be used to select and copy text. The other method is to set a permissions password on the PDF. This method is persistent in the PDF and will be respected by most PDF viewers including Embed API. You can use Acrobat to set the password. See image below.

security.png

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 17, 2020 Sep 17, 2020

Copy link to clipboard

Copied

I think first method wiil work for me i think using using enableTextSelection API but the problem is that iam also using code to jump to specific page and when iam applying enableText Api it is not working please look my code

and tell me where to put api code.


<div id="embeddedView"></div>
<script src="https://documentcloud.adobe.com/view-sdk/main.js"></script>
<script type="text/javascript">
// Add ?page=4 to the end of the URL


const urlToPDF =
"https://documentcloud.adobe.com/view-sdk-demo/PDFs/Bodea Brochure.pdf";
const clientId = "7ee820c71c32474497c3c94c29ba3553";
const viewerOptions = {
embedMode: "FULL_WINDOW",
defaultViewMode: "FIT_WINDOW",
showDownloadPDF: false,
showPrintPDF: false,
showLeftHandPanel: true,
showAnnotationTools: false
};
function fetchPDF(urlToPDF) {
return new Promise((resolve) => {
fetch(urlToPDF)
.then((resolve) => resolve.blob())
.then((blob) => {
resolve(blob.arrayBuffer());
});
});
}

var page={{$pageNumber}};
function goToPage(previewFilePromise, pageNum) {
previewFilePromise.then((adobeViewer) => {
adobeViewer.getAPIs().then((apis) => {
// Go to the page. Page numbers are 1 based.
apis.gotoLocation(parseInt(page));
});
});
}


function processEvent(event, previewFilePromise) {
if (event.type == "PDF_VIEWER_OPEN") {
// Get the page parameter from the URL
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const pageNum = urlParams.get("page");
// Go to the page number specified in the URL
goToPage(previewFilePromise, pageNum);
}
}

document.addEventListener("adobe_dc_view_sdk.ready", function () {
// Create embedded view
var adobeDCView = new AdobeDC.View({
clientId: clientId,
divId: "embeddedView"
});
// Show the file

var previewFilePromise = adobeDCView.previewFile(
{
content: { promise: fetchPDF(urlToPDF) },
metaData: { fileName: urlToPDF.split("/").slice(-1)[0] }
},
viewerOptions
);
// create object to set events that we want to listen for
var eventOptions = {
listenOn: [AdobeDC.View.Enum.Events.PDF_VIEWER_OPEN],
enableFilePreviewEvents: true
};
// register the event callback
adobeDCView.registerCallback(
AdobeDC.View.Enum.CallbackType.EVENT_LISTENER,
function (event) {
processEvent(event, previewFilePromise);
},
eventOptions
);
});



// Helper Function: Add arrayBuffer if necessary i.e. Safari
(function () {
if (Blob.arrayBuffer != "function") {
Blob.prototype.arrayBuffer = myArrayBuffer;
}

function myArrayBuffer() {
return new Promise((resolve) => {
let fileReader = new FileReader();
fileReader.onload = () => {
resolve(fileReader.result);
};
fileReader.readAsArrayBuffer(this);
});
}
})();
</script>

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Sep 17, 2020 Sep 17, 2020

Copy link to clipboard

Copied

Hi Himanshu, 

Although I am not able to see any enableTextSelection API invocation.

You can write this API right after your page adjust.

// Go to the page. Page numbers are 1 based.
apis.gotoLocation(parseInt(page));
apis.enableTextSelection(false);

 
Let me know if it works for you.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 17, 2020 Sep 17, 2020

Copy link to clipboard

Copied

LATEST

Yeah it worked thanks for your response iam very thankful to your fast response and help.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines